确定dict是否包含以特定字符串开头的键的最快方法是什么?我们能做得比线性好吗?当我们只知道密钥的开头时,我们如何才能实现O(1)操作?
这是当前的解决方案:
for key in dict.keys():
if key.start_with(str):
return True
return False
Run Code Online (Sandbox Code Playgroud)
ars*_*jii 32
没有预处理字典,O(n)是你能做的最好的.但它并不复杂,但是:
any(key.startswith(mystr) for key in mydict)
Run Code Online (Sandbox Code Playgroud)
(不要使用dict和str作为变量名,这些已经是两个内置函数的名称.)
如果您可以预处理dict,请考虑将密钥放在前缀树(也称为trie)中.维基百科文章中甚至还有一个Python实现.
| 归档时间: |
|
| 查看次数: |
14793 次 |
| 最近记录: |