Python 如何将两个列表合并到一个字典中,其中键可以有多个值?
下面两个列表相互匹配,爱丽丝的年龄是20岁,鲍勃的年龄是21岁,依此类推Python 如何将两个列表合并到一个字典中,其中键可以有多个值?,python,python-3.x,Python,Python 3.x,下面两个列表相互匹配,爱丽丝的年龄是20岁,鲍勃的年龄是21岁,依此类推 names = ["Alice", "Bob", "Cathy", "Dan", "Ed", "Frank", "Gary", "Helen", "Irene", "Jack", "Kelly", "Larry"] ages = [20, 21, 18, 18, 19, 20, 20, 19, 19, 19, 22, 19] 编写一个程序,将这些列表合并到字典中。键将是年龄,值将是名称,因此键可以有多个值,并且 像这样:
names = ["Alice", "Bob", "Cathy", "Dan", "Ed", "Frank", "Gary", "Helen", "Irene", "Jack", "Kelly", "Larry"]
ages = [20, 21, 18, 18, 19, 20, 20, 19, 19, 19, 22, 19]
编写一个程序,将这些列表合并到字典中。键将是年龄,值将是名称,因此键可以有多个值,并且
像这样:
{20: ['Alice', 'Frank', 'Gary'],
21: ['Bob'],
18: ['Cathy', 'Dan'],
19: ['Ed', 'Helen', 'Irene', 'Jack', 'Larry'],
22: ['Kelly']}
我尝试过以下几种方法:
{20: ['Alice', 'Frank', 'Gary'],
21: ['Bob'],
18: ['Cathy', 'Dan'],
19: ['Ed', 'Helen', 'Irene', 'Jack', 'Larry'],
22: ['Kelly']}
newDict=dict(zip(年龄、姓名))
打印(newDict)
它们都输出:
{20:'加里',21:'鲍勃',18:'丹',19:'拉里',22:'凯利'}试试这个:
from collections import defaultdict
age_name = defaultdict(list)
for age, name in zip(ages, names):
age_name[age].append(name)
Defaultdicts可能非常有用。它们会自动为新密钥创建默认容器
编辑:不使用defaultdicts
age_name = dict()
for age, name in zip(ages, names):
if age not in age_name.keys():
age_name[age] = list()
age_name[age].append(name)
请把你试过的东西贴出来&在哪些方面有缺陷。你试过什么了吗?现在,听起来好像你在要求我们为你做家庭作业,这不是堆栈溢出的目的。我必须在不导入任何内容的情况下执行此操作:(