我正在使用python 2.7。 我有2个长名单:
id=['avc-asd','asd-red'.....]
name=['car','toy',.....]
print len(id) #600
print len(name) #600
my_dict=dict(zip(id,name))
print len(my_dict) #20
print my_dict
#{'avcf-asd':'car','asd-red':'toy'...}
知道截断发生的原因吗? : - /
我也尝试过使用izip_longest,但我得到的结果相同。
from itertools import izip_longest
my_dict=dict(izip_longest(id,name))
print len(my_dict) #20
答案 0 :(得分:2)
我已将评论移至答案帖,因为OP表示已解决问题。
基本上,您需要确保词典的键是唯一的,并且正如您所指出的那样,zip
事物的顺序也很重要。请考虑以下示例代码:
>>> ids = ['1', '2', '3']
>>> names = ['a', 'b', 'a']
>>> dict(zip(ids, names)) # works fine; no duplicates in ids
{'1': 'a', '3': 'a', '2': 'b'}
>>> dict(zip(names, ids)) # truncates due to duplicates in names
{'a': '3', 'b': '2'}