如何最佳地存储50万个键值对?

时间:2017-12-26 21:10:16

标签: python

所以,我有一个附加了ID的对象。我需要对该ID进行查找并获取不同的ID。我只是不知道最有效的方法。

基本上,转换将如下所示:

1 -> af567
2 -> at678
3 -> dh675

我将在Python中进行此查找,并且所有这些值在运行时之前都是已知的。我想过Json,SQLite或预建词典,但我不确定最佳路线。将存储500,000对这些对。我只需要知道存储这些对的最佳介质

1 个答案:

答案 0 :(得分:2)

好的,所以你有500.000个项目,其中一个数字映射到一个五位数的字符串:

让我们把它放到测试

def five(i):
    """turns a number into an at least five-digit string"""
    s = hex(s).replace('0x', '')
    return '0' * (5 - len(s)) + s

# 500k items, no duplication
d = {}
for i in range(500000):
    d[i] = five(i)

# see https://code.activestate.com/recipes/577504/
total_size(d, verbose=False) / 1024 / 1024
# => 33.8720645904541 (megabytes)

这没什么,真的。使用词典。