1

可能重复:
如何将两个列表转换为字典(一个列表是键,另一个是值)?

如果我有一个整数列表:

L=[1,2,3,4]

我有一个元组列表:

K=[('a','b'),('c','d'),('e','f'),('g','i')]

如何制作一个字典列表,其中键是 K 中的项目,值是 L 中的整数,其中每个整数对应于 K 中的项目

d={('a','b'):1,('c','d'):2,('e','f'):3,('g','i'):4}
4

3 回答 3

5

用于zip()将两个可迭代对象组合成对,然后将其传递给dict构造函数:

d = dict(zip(K, L))

快速演示(考虑dict不保留订单):

>>> L=[1,2,3,4]
>>> K=[('a','b'),('c','d'),('e','f'),('g','i')]
>>> dict(zip(K, L))
{('e', 'f'): 3, ('a', 'b'): 1, ('c', 'd'): 2, ('g', 'i'): 4}

使用 for 循环并且没有zip()

d={}
for i, key in enumerate(K):
    d[key] = L[i]
于 2012-11-24T06:05:30.970 回答
0

你应该能够做到这一点zip

zipped = zip(K, L)
d = dict(zipped)
于 2012-11-24T06:07:14.133 回答
0

如果您需要使用 for 循环(这是您的作业吗?),您可以从以下开始:

d = {}
for i in xrange(len(K)):

你应该自己弄清楚最后一行。

循环索引是一种您可以在其他语言中使用的技术,并且有时(很少)在 python 中是必需的。一般来说,你应该使用python的高级语言特性来让你的代码更容易阅读和调试。

于 2012-11-24T08:06:05.013 回答