Python最有效的数据结构来保存值并检查值是否存在

林书豪

假设我有数百万个字符串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速度要快得多,但是我觉得仅仅为了利用键的哈希图而创建dictwith束Nones并不是很优雅。

有没有更规范,更优雅的方法呢?

板球运动员

如果没有值,请使用set(),而不是dict

{str(i) for i in range(30000)}

但是,如果您有数百万个项目,那么例如对于应用程序的内存使用/性能而言,也许将其卸载到Redis会更好。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

哪种c ++ stl数据结构对存储唯一值及其计数最有效?

检查 PHP 7 中是否存在对象值的最有效方法

检查字典键是否存在并处理其值的最有效方法

检查NumPy数组中是否存在值的最有效方法是什么?

最有效的数据结构来表示Java中的线程注释?

列表和布尔值之间的JSON数据结构是否有效?

用于保存禁止对列表的最有效数据结构

选择最有效的数据结构

朱莉娅(Julia):给定itr变量,是否有一种有效的数据结构和算法来获取itr的前n个值的索引?

Python中最有效的图形数据结构是什么?

检查属性是否存在的最有效方法

在某些条件下检查数据框中是否存在值的有效方法

是否有允许有效范围查询的 python 数据结构?

Python最有效的方式来保留排序的数据

除二进制搜索树外,是否有任何有效的数据结构来表示Set

使数据结构成为线程安全(Java)的最有效方法

这是用于存储关注者和关注者的最有效的数据结构

设计PRIM算法最有效的数据结构是什么?

用于插入和排序的最有效数据结构

Python列表检查数据结构中是否存在NoneType

检查用户是否存在于数据库中的最有效方法是什么?

在大型数据框中修改值的最有效方法-Python

哪个最有效的nil值?

检查字节数组值的最有效方法是否在范围内/阈值以下?

检查 Firebase 实时数据库节点值的相等性并更改它的最有效方法是什么?

如何检查字符串是否存在有效的替换值?

如何有效地检查DynamoDB中是否存在值?

检查未知对象中是否存在对象的最有效的Javascript方法

检查JS可选属性是否存在的最有效(或最典型)方式?