从2个给定列表中创建一个字典

时间:2016-02-06 18:41:13

标签: python python-2.7

这是我编写的一个工作脚本,用于从2个给定列表构建dictionaryi-th中的L1对象位于keyvalue位于i-th的{​​{1}}位置。

L2

我想以不同的方式尝试:使用L1=[1,2,'a','b'] L2=[(22,'aa'),['x'],('3',),('s',3)] d = {} sizeL = len(L1) for i in range(sizeL): key = L1[i] val = L2[i] d[key] = val print "Output:\n" print "\nL1=",L1 print "L2=",L2 print "dictionary d = ",d 函数。因此,我需要创建一个带有元组的列表。我不明白怎么做。这是我尝试的:

dict

当然我得错误是因为错误地使用了L1=[1,2,'a','b'] L2=[(22,'aa'),['x'],('3'),('s','3')] L=[] n=len(L1) for i in range(n): L.append(L1[i],L2[i]) d=dict(L) print d 函数..

想了解如何创建这个“元组列表”,这是一个可供append函数使用的列表。

谢谢!

3 个答案:

答案 0 :(得分:6)

你可以简单地zip两个列表元素,然后从那个

创建一个dict
>>> dict(zip(L1,L2))
{1: (22, 'aa'), 2: ['x'], 'a': ('3',), 'b': ('s', 3)}

答案 1 :(得分:2)

L1= [1, 2, 'a', 'b']
L2= [(22, 'aa'), ['x'], ('3',), ('s', 3)]

d = {k:v for k,v in zip(L1,L2)}
print d

产量

{'a': ('3',), 1: (22, 'aa'), 2: ['x'], 'b': ('s', 3)

答案 2 :(得分:2)

在您的代码中应该是:

for i in range(n):
    L.append((L1[i],L2[i])) #append a tuple of (L1[i], L2[i])

但更简单的方法就是:

d = dict(zip(L1,L2))