Python 2.7.12:如何将两个列表组合成字典

时间:2016-10-28 15:45:40

标签: python python-2.7

我搜索了谷歌和文档,但我无法找到(我猜)简单问题的答案。我必须列出相应的清单。

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。

2 个答案:

答案 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

它可能是最方便快捷的方式。