gpt4 book ai didi

python - 存储映射到字符串的整数以便键可以是 python 中的范围的最佳方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 07:26:07 24 4
gpt4 key购买 nike

什么是存储格式(非可变)数据的最佳方式:

doodahs = {
0-256: "FOO",
257: "BAR",
258: "FISH",
279: "MOOSE",
280-65534: "Darth Vader",
65535: "Death to all newbies" }

我有相对较多的这类数据集,所以我可以定义字典(或接近字典)的方式并通过索引访问。

哦,这是在 Python 2.4 上,所以如果你想让我使用更新的版本,请给出非常好的升级理由(我会选择 3 :)

最佳答案

我会将范围拆分为一个元组,然后在您的类(class)中,将项目保存在有序列表中。您可以使用 bisect插入 O(n) 和查找 O(logn) 的模块。

如果你正在将一个字典转换为你的新类,你可以构建一个无序列表并在最后对其进行排序

doodahs = [
(0, 256, "FOO"),
(257, 257, "BAR"),
(258, 258, "FISH"),
(279, 279, "MOOSE"),
(280, 65534, "Darth Vader"),
(65535, 65535, "Death to all newbies")]

您的 __getitem__ 可能会像这样工作:

def __getitem__(self, key):
return self.doodahs[bisect.bisect(self.doodahs, (key,))]

__setitem__ 可能是这样的:

def __setitem__(self,range,value):
bisect.insort(self.doodahs, range+(value,))

关于python - 存储映射到字符串的整数以便键可以是 python 中的范围的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1606150/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com