我搜索了谷歌和文档,但我无法找到(我猜)简单问题的答案。我必须列出相应的清单。
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]
这些列表必须成为以AGES为关键字的字典。我写了一个函数,但它会覆盖键中先前插入的值..
def combine_lists(list_a, list_b):
dictionary = dict()
for i in range(len(list_a)):
dictionary[list_a[i]] = list_b[i]
return dictionary
print combine_lists(AGES, NAMES)
执行程序给了我这个:
{18: 'Dan', 19: 'Larry', 20: 'Gary', 21: 'Bob', 22: 'Kelly'}
解决这个(简单)问题的正确方法是什么?
更新:
我想要的是有多个值链接到一个键,因此键18不仅给了我Dan,还给了我Cathy。
答案 0 :(得分:4)
如果您希望条目成为列表......
from collections import defaultdict
age_name_dict = defaultdict(list)
for name, age in zip(NAMES, AGES):
age_name_dict[age].append(name)
答案 1 :(得分:-2)
您可以使用zip function
它可能是最方便快捷的方式。