我想在python中存储一些数据的实例。每条记录都有以下字段: 用户名,地址,工资等...
用户名应该是唯一的。我做了很多搜索。
目前我正在使用字典列表,但是当我插入一个新项目时,我会迭代列表并检查每个字典的用户名,即O(n)。搜索也是O(n)。我怎么能实现用户名有一个索引,并使搜索时间为O(logn)?
答案 0 :(得分:2)
为什么不使用词典词典?
顶级词典可以通过用户名进行处理,而其他词汇可以与您现在的相同。
也可以扫描字典(d.values()) - 唯一的缺点是,你不能依赖于排序。
当然这不是数据库行为,但在大多数情况下足够好且非常快 - 通过dict访问是O(1)。
当然你可以使用sqlite - 但是当你只想通过用户名访问并扫描条目时,你会更快(无论是在开发速度还是运行时速度)。
答案 1 :(得分:0)
您也可以实际使用关系数据库。 sqlite模块允许内存中的数据库:
import sqlite3
conn = sqlite3.connect(':memory:')
# ...
conn.close()