Let's say I have a:
dict = {"Main": ["Tammy","Elisha","Julius"],
"Elisha": ["Kenneth"]
}
The context is like a Queue system. The Main is the normal queue. While "Elisha:[Kenneth]" is like a Cut queue. You can imagine everyone is queueing normally for a MacDonald when Elisha decided to bring his friend, Kenneth into the queue.
How do i append "Kenneth" to "Main":"Elisha" so that when I print dict['Main'] it will return the following expected output:
Expected Output: [Tammy, Elisha, Kenneth, Julius ]
If Elisha decided to bring in another friend, "Elisha": ["Nicole"]. Then the expected output would be:
Expected Output: [ Tammy, Elisha, Kenneth, Nicole, Julius ]
I tried googling for append, however append doesn't work for dictionary but only on list.
I tried:
dict['Main'].value("Elisha").append("Kenneth")
but it returned error.
You can recursively print the queue How it works:
Main
queued = {"Main":["Tammy","Elisha","Julius"],
"Elisha": ["Kenneth"]
}
def get_flattened_queue(data, key, flattened_queue):
members = data[key]
for each_member in members:
flattened_queue.append(each_member)
if each_member in data.keys():
get_flattened_queue(data, each_member, flattened_queue)
return flattened_queue
flattened_queue = []
get_flattened_queue(d, 'Main', flattened_queue)
print(flattened_queue)
['Tammy', 'Elisha', 'Kenneth', 'Julius']
Now suppose Elisa
brings Nicole
d = {"Main":["Tammy","Elisha","Julius"],
"Elisha": ["Kenneth"]
}
def get_flattened_queue(data, key, flattened_queue):
members = data[key]
for each_member in members:
flattened_queue.append(each_member)
if each_member in data.keys():
get_flattened_queue(data, each_member, flattened_queue)
return flattened_queue
# Here she brings Nicole
d['Elisha'].append('Nicole')
#{"Main":["Tammy","Elisha","Julius"],
# "Elisha": ["Kenneth", "Nicole"]
# }
flattened_queue = []
get_flattened_queue(d, 'Main', flattened_queue)
print(flattened_queue)
['Tammy', 'Elisha', 'Kenneth', 'Nicole', 'Julius']
d = {"Main":["Tammy","Elisha","Julius"],
"Elisha": ["Kenneth"]
}
def get_flattened_queue(data, key, flattened_queue):
members = data[key]
for each_member in members:
flattened_queue.append(each_member)
if each_member in data.keys():
get_flattened_queue(data, each_member, flattened_queue)
return flattened_queue
# Here she brings Nicole
d['Elisha'].append('Nicole')
#{"Main":["Tammy","Elisha","Julius"],
# "Elisha": ["Kenneth", "Nicole"]
# }
# Nicole brings Epsi95
d['Nicole'] = ['Epsi95']
flattened_queue = []
get_flattened_queue(d, 'Main', flattened_queue)
print(flattened_queue)
{'Main': ['Tammy', 'Elisha', 'Julius'],
'Elisha': ['Kenneth', 'Nicole'],
'Nicole': ['Epsi95']}
['Tammy', 'Elisha', 'Kenneth', 'Nicole', 'Epsi95', 'Julius']