[英]Python hash table for fuzzy matching
我正在尝试实现一种数据结构,允许基于密钥的快速查找。
当我的查找涉及平等时,python dict
很棒
(例如key == somevalue
转换为datadict[somevalue]
。
问题是我还需要能够根据更复杂的比较来有效地查找键,例如key > 50
或key.startswith('abc')
。
显然我不能在两种情况下使用相同的解决方案,但目前我无法弄清楚如何解决这两种情况。 任何人都可以提出这样做的方法吗?
听起来你不想要一个哈希算法 - 而是某种形式的二叉树。 甚至是你使用bisect
模块的列表。 值得一看: Python的标准库 - 是否存在平衡二叉树的模块?
另一个选择(取决于你的数据),将使用内存中的sqlite3
数据库并为可能的查找创建适当的索引 - 但你将交换性能/内存和SQL语法以获得灵活性......
key > 50
或key.startswith('abc')
。 当然,如果你有非常多的数据项,这只会得到回报。 如果没有那么多,只需循环遍历列表并将条件应用于每个键。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.