如何以最佳方式存储50万个键值对?

2024-04-26 12:28:49 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我有一个附加了ID的对象。我需要在那个ID上做一个查找,然后得到一个不同的ID。我只是不知道最有效的方法。你知道吗

从本质上讲,这种转变是这样的:

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

我将在Python中进行这个查找,所有这些值在运行之前都是已知的。我考虑过Json、SQLite或一个预构建的字典,但我只是不确定最佳的选择。将有500000对这样的存储。我只想知道储存这双鞋的最佳介质


Tags: 对象方法idjsonsqlite字典储存介质
1条回答
网友
1楼 · 发布于 2024-04-26 12:28:49

好的,你有50万个项目,其中一个数字对应一个五位数的字符串:

让我们来检验一下

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)

没什么,真的。用口述

相关问题 更多 >