【发布时间】:2015-12-03 03:02:33
【问题描述】:
我想在 python 中存储一些数据的大量实例。每条记录都有以下字段: 用户名、地址、工资等...
用户名应该是唯一的。我做了很多搜索。
目前我正在使用一个字典列表,但是当我插入一个新项目时,我会迭代列表并检查每个字典的用户名,即 O(n)。搜索也是 O(n)。如何实现用户名索引,并使搜索时间为 O(logn)?
【问题讨论】:
-
通常,到达
O(log n)的方法是使用二进制搜索,这建议您按用户名的字母顺序排列您的列表。如果用户名是唯一的,为什么不直接使用外部字典呢? -
为什么不使用以用户名作为键的字典?
-
既然可以使用关系数据库(如sqlite),为什么还要模仿关系数据库。
-
以用户名作为键的字典为您提供 O(1) 查找时间。
-
我猜你必须提供你想要使用的数据样本。我无法想象您将如何获得具有唯一用户名的数据库。似乎不正确,可能这是一个坏主意。如果这是一个非常小的项目,那么您已经准备好一两个答案了。
标签: python list search dictionary set