如果每个集合的长度完全相同,并且集合中的每个项目的长度都相同,那么遍历一个由数字组成的Python set
或字母组成的Pythonset
会更快吗?为什么?在
我认为这是有区别的,因为字母比数字[0-9]有更多可能的字符[a-zA-Z],因此会更“随机”,可能会在某种程度上影响散列。在
numbers = set([00000,00001,00002,00003,00004,00005, ... 99999])
letters = set(['aaaaa','aaaab','aaaac','aaaad', ... 'aaabZZ']) # this is just an example, it does not actually end here
for item in numbers:
do_something()
for item in letters:
do_something()
其中len(数字)==len(字母)
Update:我对Python的特定哈希算法以及这个实现的幕后操作感兴趣。在
Python可能有一些特定的实现细节,我不知道这些细节与我的一般论点有什么关系,但是:
timeit
,并给出一个实际的数据示例。投机通常是浪费时间。在您可以看到如下Python哈希算法的结果:
所以在我的Python副本中,这些散列结果与reported Python hash algorithms匹配。与CPython一样,您可以查看源代码来确认算法。在
你不能知道直到你的个人资料!以下是一些粗略的数据:
看起来你是对的,有一点差别,但你需要做更多的测试来自信地说很多。在
相关问题 更多 >
编程相关推荐