给定一个值列表和一个键列表,如何从这两个列表中生成字典?

2024-04-25 13:43:38 发布

您现在位置:Python中文网/ 问答频道 /正文

Possible Duplicate:
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')]

如果K中的键是item,而L中的值是integer,那么每个integer对应K中的项,那么如何创建dict列表呢

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

Tags: thetoconvert列表dictionaryisintegerone
3条回答

您应该可以使用zip来实现这一点:

zipped = zip(K, L)
d = dict(zipped)

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

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

你应该自己找出最后一行。你知道吗

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

使用^{}将两个iterable组合成一对,然后将其传递给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循环和nozip()

d={}
for i, key in enumerate(K):
    d[key] = L[i]

相关问题 更多 >