如何将字典值附加到现有字典值?
How to append a dictionary value to an existing dictionary value?
假设我有一个:
dict = {"Main": ["Tammy","Elisha","Julius"],
"Elisha": ["Kenneth"]
}
上下文就像一个队列系统。 Main 是普通队列。而“Elisha:[Kenneth]”就像一个 Cut 队列。你可以想象当 Elisha 决定让他的朋友 Kenneth 加入队列时,每个人都在正常排队买麦当劳。
我如何将“Kenneth”附加到“Main”:“Elisha”,这样当我打印 dict['Main'] 时,它将 return 以下预期输出:
预期输出:[Tammy, Elisha, Kenneth, Julius ]
如果 Elisha 决定带另一个朋友“Elisha”:[“Nicole”]。那么预期的输出将是:
预期输出:[ Tammy, Elisha, Kenneth, Nicole, Julius ]
我尝试使用谷歌搜索追加,但追加不适用于字典,只能用于列表。
我试过了:
dict['Main'].value("Elisha").append("Kenneth")
但它 returned 错误。
您的情况需要使用 extend
:
dic = {"Main":["Tammy","Elisha","Julius"],
"Elisha": ["Kenneth", "Nicole"]
}
dic["Main"].extend(dic["Elisha"])
print(dic["Main"])
输出:
['Tammy', 'Elisha', 'Julius', 'Kenneth', 'Nicole']
此外,避免对对象名称使用关键字 dict
以避免隐藏构建中的行为。
更新:
要在特定的 index
处插入,您可以先使用 index()
方法获取要插入的索引,然后使用切片将新列表插入为:
idx = dic["Main"].index("Elisha")
dic["Main"][idx+1:len(dic["Elisha"])] = dic["Elisha"]
print(dic["Main"])
['Tammy', 'Elisha', 'Kenneth', 'Nicole', 'Julius']
你可以递归打印队列
工作原理:
- 创建一个空队列
- 从
Main
队列中的第一个人开始
- 将该人添加到 1 中提到的空队列中
- 查看此人是否有朋友,如果有
- 将他们添加到1中提到的队列中,并查看他们是否有朋友
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
flattened_queue = []
get_flattened_queue(d, 'Main', flattened_queue)
print(flattened_queue)
['Tammy', 'Elisha', 'Kenneth', 'Julius']
现在假设 Elisa
带来 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']
假设我有一个:
dict = {"Main": ["Tammy","Elisha","Julius"],
"Elisha": ["Kenneth"]
}
上下文就像一个队列系统。 Main 是普通队列。而“Elisha:[Kenneth]”就像一个 Cut 队列。你可以想象当 Elisha 决定让他的朋友 Kenneth 加入队列时,每个人都在正常排队买麦当劳。
我如何将“Kenneth”附加到“Main”:“Elisha”,这样当我打印 dict['Main'] 时,它将 return 以下预期输出:
预期输出:[Tammy, Elisha, Kenneth, Julius ]
如果 Elisha 决定带另一个朋友“Elisha”:[“Nicole”]。那么预期的输出将是:
预期输出:[ Tammy, Elisha, Kenneth, Nicole, Julius ]
我尝试使用谷歌搜索追加,但追加不适用于字典,只能用于列表。
我试过了:
dict['Main'].value("Elisha").append("Kenneth")
但它 returned 错误。
您的情况需要使用 extend
:
dic = {"Main":["Tammy","Elisha","Julius"],
"Elisha": ["Kenneth", "Nicole"]
}
dic["Main"].extend(dic["Elisha"])
print(dic["Main"])
输出:
['Tammy', 'Elisha', 'Julius', 'Kenneth', 'Nicole']
此外,避免对对象名称使用关键字 dict
以避免隐藏构建中的行为。
更新:
要在特定的 index
处插入,您可以先使用 index()
方法获取要插入的索引,然后使用切片将新列表插入为:
idx = dic["Main"].index("Elisha")
dic["Main"][idx+1:len(dic["Elisha"])] = dic["Elisha"]
print(dic["Main"])
['Tammy', 'Elisha', 'Kenneth', 'Nicole', 'Julius']
你可以递归打印队列 工作原理:
- 创建一个空队列
- 从
Main
队列中的第一个人开始 - 将该人添加到 1 中提到的空队列中
- 查看此人是否有朋友,如果有
- 将他们添加到1中提到的队列中,并查看他们是否有朋友
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
flattened_queue = []
get_flattened_queue(d, 'Main', flattened_queue)
print(flattened_queue)
['Tammy', 'Elisha', 'Kenneth', 'Julius']
现在假设 Elisa
带来 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']