您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python字典中长(str)键的效率

python字典中长(str)键的效率

不,Python字符串的长度几乎不会影响字典性能。字符串长度可能具有的唯一影响是在所hash()使用的函数上,将键映射到哈希表插槽。

字符串长度对以下各项的性能影响很小hash()

>>> import random
>>> from timeit import timeit
>>> from string import ascii_letters
>>> generate_text = lambda len: ''.join([random.choice(ascii_letters) for _ in xrange(len)])
>>> for i in range(8):
...     length = 10 + 10 ** i
...     testword = generate_text(length)
...     timing = timeit('hash(t)', 'from __main__ import testword as t')
...     print 'Length: {}, timing: {}'.format(length, timing)
... 
Length: 11, timing: 0.061537027359
Length: 20, timing: 0.0796310901642
Length: 110, timing: 0.0631730556488
Length: 1010, timing: 0.0606122016907
Length: 10010, timing: 0.0613977909088
Length: 100010, timing: 0.0607581138611
Length: 1000010, timing: 0.0672461986542
Length: 10000010, timing: 0.080118894577

我停止生成1000万个字符的字符串,因为我不必等待笔记本电脑生成1亿个字符串。

时间几乎是恒定的,因为一旦计算出该值实际上就缓存在字符串对象上。

python 2022/1/1 18:30:19 有214人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶