我正在尝试创建一个自动python程序,它使用两个单独的列表来创建字典,到目前为止我失败了。我有两个排序列表,其中第一个列表中的第n个项目对应于第二个列表中的第n个项目,我想将它们组合成一个字典。
例如,2个列表的子集如下;
name = ['Adam', 'Alfred', 'Amy', 'Andy', 'Bob']
year = [1972, 1968, 1985, 1991, 1989]
我希望我的输出为:
birth_years = {'Adam':1972, 'Alfred':1968, 'Amy':1985, 'Andy':1991, 'Bob':1989}
我试图用for循环来做这个,但我无法让它工作。我感谢任何帮助。
答案 0 :(得分:14)
使用zip
和dict
函数从元组列表中构造字典:
birth_years = dict(zip(name, year))
如果你很好奇,我会尝试用for
循环来做这件事:
birth_years = {}
for index, n in enumerate(name):
birth_years[n] = years[index]
我想我更喜欢第一个例子。
答案 1 :(得分:1)
birth_years = {}
for i in range(len(name)):
birth_years[name[i]] = year[i]
答案 2 :(得分:1)
尝试字典理解:
birth_years = {nm:year[idx] for idx, nm in enumerate(name)}
答案 3 :(得分:0)
您的列表会更好地命名为names
和years
。尝试使用for
循环开始,你已经有了一个良好的开端。大多数实际的数据处理问题涉及错误检查,这对于单行来说有点困难。例如:
birth_years = {}
for i, name in enumerate(names):
if name in birth_years:
log_duplicate(i, name, years[i]))
else:
birth_years[name] = years[i]