这是我编写的一个工作脚本,用于从2个给定列表构建dictionary
:i-th
中的L1
对象位于key
到value
位于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
函数使用的列表。
谢谢!
答案 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))