繁体   English   中英

用于模糊匹配的Python哈希表

[英]Python hash table for fuzzy matching

我正在尝试实现一种数据结构,允许基于密钥的快速查找。

当我的查找涉及平等时,python dict很棒
(例如key == somevalue转换为datadict[somevalue]

问题是我还需要能够根据更复杂的比较来有效地查找键,例如key > 50key.startswith('abc')

显然我不能在两种情况下使用相同的解决方案,但目前我无法弄清楚如何解决这两种情况。 任何人都可以提出这样做​​的方法吗?

听起来你不想要一个哈希算法 - 而是某种形式的二叉树。 甚至是你使用bisect模块的列表。 值得一看: Python的标准库 - 是否存在平衡二叉树的模块?

另一个选择(取决于你的数据),将使用内存中的sqlite3数据库并为可能的查找创建适当的索引 - 但你将交换性能/内存和SQL语法以获得灵活性......

  • 将所有数据项放在列表中。
  • 对密钥列表进行排序。
  • 使用二进制搜索有效地查找key > 50key.startswith('abc')

当然,如果你有非常多的数据项,这只会得到回报。 如果没有那么多,只需循环遍历列表并将条件应用于每个键。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM