python - 使用部分关键字搜索 python dict 的最快方法

标签 python

确定字典是否包含以特定字符串开头的键的最快方法是什么?我们能比线性做得更好吗?当我们只知道一个键的开始时,我们如何实现 O(1) 操作?

这是目前的解决方案:

for key in dict.keys():
    if key.start_with(str):
        return True
return False

最佳答案

如果不对 dict 进行预处理,O(n) 是您能做的最好的。不过,它不必很复杂:

any(key.startswith(mystr) for key in mydict)

(不要使用dictstr 作为变量名,它们已经是两个built-in functions 的名称。)

如果您可以预处理字典,请考虑将键放在前缀树中(又名 trie )。甚至还有一个 Python implementation在维基百科文章中。

关于python - 使用部分关键字搜索 python dict 的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18066603/

相关文章:

python - 为什么 django queryset.extra() 抛出 OperationalError : (1242, 'Subquery returns more than 1 row' )?

python - 查找 pandas dataframe 列的 n 个最大值(当为字符串时)

python - 使用 Python 访问不断变化的网页元素

python - 如何在 cxfreeze 安装程序中包含子目录中的文件

python - 如何颠倒 Pandas 系列中名字和姓氏的顺序

python - 指定参数列表,列表中至少有一个参数

python - 安装脚本已退出,出现错误 : command 'x86_64-linux-gnu-gcc' failed with exit status 1 while Installing PyNaCl

python - 无法从 VS CODE 状态栏更改 python 解释器

python - 谁能告诉我为什么我收到 IndexError : list index out of range?

python - 查找网站在表单提交后发出的隐藏 URL 请求,用于抓取