将Python中的两个列表映射到字典会导致更少的项目?

时间:2015-05-23 17:59:07

标签: python list dictionary

我有一个列表,包含50个项目:

print(len(per_column[0]))会返回50个项目,而print(len(per_column[1]))也会返回50个项目。

我想把它变成字典。所以我这样做:

HashDict = dict(zip(per_column[0], per_column[1]))

但这导致字典仅包含47个项目,而不是50个(由print(len(HashDict))验证)。退后一步,如果我只压缩列表(不创建字典),我实际上仍然可以获得50个项目:

zipList = zip(per_column[0], per_column[1])

当我尝试将压缩列表转换为字典时,似乎出现了问题。我忽略了什么吗?

3 个答案:

答案 0 :(得分:4)

第一个列表只有47个唯一项;较旧的物品正在被较新的物品取代。

答案 1 :(得分:0)

如果您丢失了商品,那将是因为per_column[0]中的重复键。

答案 2 :(得分:0)

您的问题是第一个列表中的重复值。由于dict不能包含重复键,因此其长度会更短。您可以使用以下命令在列表中找到重复值:

from collections import Counter

fields = Counter(per_column[0])
print fields.most_common()