假设我有数百万个字符串ID,我想将它们存储在变量中,并检查是否存在一个ID,我可以想到两种方式,list
并且dict
:
使用 list
>>> timeit_a = timeit.Timer('"9999999" in a', setup='a = [str(i) for i in range(3000000)]')
>>> timeit_a.timeit(1)
0.06293477199994868
使用 dict
>>> timeit_b = timeit.Timer('"9999999" in b', setup='b = {str(i): None for i in range(3000000)}')
>>> timeit_b.timeit(1)
3.860999981952773e-06 # equal to 0.00000386099
正如我们所看到的,使用的dict
速度要快得多,但是我觉得仅仅为了利用键的哈希图而创建dict
with束None
s并不是很优雅。
有没有更规范,更优雅的方法呢?
如果没有值,请使用set()
,而不是dict
{str(i) for i in range(30000)}
但是,如果您有数百万个项目,那么例如对于应用程序的内存使用/性能而言,也许将其卸载到Redis会更好。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句