我的 python 代码有点复杂。
print len(list1)
print len(list2)
dikt = dict(zip(list1,list2))
print len(dikt)
给出:
>> 95
>> 95
>> 26
为什么dikt给我的值是26而不是95,可以补充一下,列表中的元素不一样。我一无所知。
我的 python 代码有点复杂。
print len(list1)
print len(list2)
dikt = dict(zip(list1,list2))
print len(dikt)
给出:
>> 95
>> 95
>> 26
为什么dikt给我的值是26而不是95,可以补充一下,列表中的元素不一样。我一无所知。
您可能在list1
. Adict
不能有重复的键。
>>> list1 = [1, 1, 2]
>>> list2 = ['a', 'b', 'c']
>>> dikt = dict(zip(list1,list2))
>>> print len(dikt)
2
>>> print dikt
{1: 'b', 2: 'c'}
如果 中有重复的条目list1
,则每个条目只会在 中出现一次dikt
。
如果您想保留与这些重复键关联的所有值,您可以执行类似的操作
import collections
dikt = collections.defaultdict(list)
list1 = [1, 1, 2, 3, 2, 5, 2, 20]
list2 = list(range(len(list1)))
for k, v in zip(list1, list2):
dikt[k].append(v)
print(dikt)
这给
defaultdict(<type 'list'>, {1: [0, 1], 2: [2, 4, 6], 3: [3], 20: [7], 5: [5]})