Python数据结构设计

标签 python data-structures

数据结构应满足以下目的:

  • 每个对象都是唯一的,具有某些键值对
  • 键和值不是预先确定的,可以包含任何字符串值
  • 查询对象应该很快

示例:

  • object_123({'stupid':True, 'foo':'bar', ...})
  • struction.get({'stupid':True, 'foo':'bar', ...}) 应返回 object_123

最好使用标准库提供的标准 Python 数据结构来实现此结构。

你会如何实现这个?

最佳答案

我能想到的最简单的解决方案是使用排序的元组键:

def key(d): return tuple(sorted(d.items()))

x = {}
x[key({'stupid':True, 'foo':'bar', ...})] = object_123

x.get(key({'stupid':True, 'foo':'bar', ...})) => object_123

另一种选择是为您的键提出您自己的哈希方案(通过将它们包装在类中或仅使用字典中的数字键),但根据您的访问模式,这可能会更慢。

关于Python数据结构设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5572037/

相关文章:

c - C风格的字符串文件格式难题

c - 在链表中插入节点

swift - 如何在类外设置结构值?

c - 使用双指针进行二叉树层次顺序遍历

python - 将数组字符串格式化为逗号分隔文件

Python 为带有 @unittest.expectedFailure 的单元测试引发 _ExpectedFailure

也是生成器函数的 Python 方法?

python - C : What assumptions can be made about the value of the underlying variable? 中的枚举

Python:使用文本文件中的数据填充 SQLite-Table - 可能不受支持的类型

java - 以线程安全的方式填充映射并将该映射从后台线程传递给另一个方法?