在python中快速查找

时间:2013-04-02 14:50:02

标签: python lookup

我有以下格式的条目(总共约8800万):

userid  age test    value
111 33  SODIUM  140
111 34  POTASSIUM   4.1
333 65.4    CHLORIDE    107
444 24  BICARBONATE 24

我需要为前三列中的value创建快速查找,前三项(即useridagetest)。

重复查找此数据的最佳方法是什么?我想到的是创建一个字典,其中keys是元组(useridagetest),值为value。在过去,我使用了类似的方法,这种方法在更小的数据上非常慢。

3 个答案:

答案 0 :(得分:5)

你应该使用数据库,你有太多的条目。数据库的工作是对如此多的数据进行查找和索引。

答案 1 :(得分:3)

如果您不关心内存使用情况:请坚持使用dict。请注意,除非您拥有 lot 内存,否则上述情况可能会耗尽您的所有内存。一点一点地做,看看你可以加载多少。快速测试表明您至少需要16GB的内存。

否则:使用数据库。 SQLite包括在内,PostgreSQL很适合专业用途,但是有很多替代品,包括Redis等NoSQL,这可能会很好。

答案 2 :(得分:0)

哇,我,我在那里。 8800万?如,88,000,000?

您必须使用数据库。尝试redis以获得非常轻量级的快速查找替代方案。您可以使用键的前三个值。

redis甚至会给你一些关于数据的精彩操作,你可以省去往返。