我从2列表生成字典第一个列表是键,第二个是值,如果字典中的值是None,我必须向键写“无”。列表长度可以不同。
def all_list(l1, l2):
d = {}
for k, v in zip(l1, l2):
if v in d is None:
d[k] = 'none'
d[k] = v
return d
r1 = ['1',2,3,5,6,7]
r2 = ('andrey','kapar','isa','murat')
print all_list(r1, r2)
{'1': 'andrey', 2: 'kapar', 3: 'isa', 5: 'murat'}
{'1': 'andrey', 2: 'kapar', 3: 'isa', 5: 'murat',
6:'None', 7: 'None'}
答案 0 :(得分:1)
检查zip是如何工作的:
>>> r1 = ['1',2,3,5,6,7]
>>> r2 = ('andrey','kapar','isa','murat')
>>> zip(r1,r2)
[('1', 'andrey'), (2, 'kapar'), (3, 'isa'), (5, 'murat')]
答案 1 :(得分:0)
for i in range(len(l1), len(l2)):
l1.append(None)
for i in range(len(l2), len(l1)):
l2.append(None)
答案 2 :(得分:0)
简单而愚蠢的解决方案
for i in xrange(len(r1)):
try:
d[r1[i]] = r2[i]
except IndexError:
d[r1[i]] = 'None'