给出一个值列表和一个键列表,如何从两个列表中创建一个字典?

时间:2012-11-24 06:04:22

标签: python

  

可能重复:
  how to convert two lists into a dictionary (one list is the keys and the other is the values)?

如果我有一个整数列表:

L=[1,2,3,4]

我有一个元组列表列表:

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

如何创建一个dict列表,其中键是K中的项,并且值是L中的整数,其中每个整数对应于K中的项

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

3 个答案:

答案 0 :(得分: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]

答案 1 :(得分:0)

您应该可以使用zip

执行此操作
zipped = zip(K, L)
d = dict(zipped)

答案 2 :(得分:0)

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

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

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

循环索引是一种可以在其他语言中使用的技术,有时(很少)在python中是必需的。通常,您应该使用python的高级语言功能来使您的代码更易于阅读和调试。