哈希是一个生成器。
mapper = {}
for hash, offset in hashes:
mapper[hash.upper()] = offset
len(mapper)
映射器长度:1444
hashlist = []
for hash in hashes:
hashlist.append(hash)
len(hashlist)
哈希表的长度:1477
这是我不明白的事情!
答案 0 :(得分:5)
显然,大写时你有重复的哈希值。字典中的键是唯一的,并且使用相同的(大写的)哈希作为字典中的键将替换该键的先前值。
在你的情况下,你有33个哈希,当大写时,已经出现过。
答案 1 :(得分:2)
列表中可能存在重复元素,因为字典不包含重复键。有一种方法可以确定,您可以将列表转换为集合,然后检查其长度。
hashlist = []
for hash in hashes:
hashlist.append(hash)
len(hashlist) # This gives the length of list which can contain duplicate values.
len(set(hashlist)) # This gives the length of list with unique values in it.
如果您需要从列表中找到重复元素
a = [1,2,3,2,1,5,6,5,5,5]
import collections
print [item for item, count in collections.Counter(a).items() if count > 1]
## [1, 2, 5]