用于模仿关系数据库的Python数据结构

时间:2015-09-07 14:09:28

标签: python list search dictionary set

我想在python中存储一些数据的实例。每条记录都有以下字段: 用户名,地址,工资等...

用户名应该是唯一的。我做了很多搜索。

目前我正在使用字典列表,但是当我插入一个新项目时,我会迭代列表并检查每个字典的用户名,即O(n)。搜索也是O(n)。我怎么能实现用户名有一个索引,并使搜索时间为O(logn)?

2 个答案:

答案 0 :(得分:2)

为什么不使用词典词典?

顶级词典可以通过用户名进行处理,而其他词汇可以与您现在的相同。

也可以扫描字典(d.values()) - 唯一的缺点是,你不能依赖于排序。

当然这不是数据库行为,但在大多数情况下足够好且非常快 - 通过dict访问是O(1)。

当然你可以使用sqlite - 但是当你只想通过用户名访问并扫描条目时,你会更快(无论是在开发速度还是运行时速度)。

答案 1 :(得分:0)

您也可以实际使用关系数据库。 sqlite模块允许内存中的数据库:

import sqlite3
conn = sqlite3.connect(':memory:')
# ...
conn.close()