使用后缀进行字典搜索

2024-06-16 13:49:05 发布

您现在位置:Python中文网/ 问答频道 /正文

p/S:到目前为止提出的重复问题都是关于前缀的(不管怎样还是要谢谢你) 这个问题是关于后缀的。在

有字典吗

dic={"abcd":2, "bbcd":2, "abgg":2}

是否可以使用字符串的后缀来搜索字典,也就是说,如果给定“bcd”,它将返回两个条目

^{2}$

一种可能的方法:

dic1={}
for k, v in dic.items():
    if(k.endswith("bcd")):
        dic1[k]=v

有没有可能提高效率?在


Tags: 方法字符串inforif字典条目items
1条回答
网友
1楼 · 发布于 2024-06-16 13:49:05

对于一个小问题集,你可以通过简单的列表理解来完成:

suffixed = [v for k, v in dic.items() if k.endswith("bcd")]

但是,这意味着每次查询时都要对字典中的每个项执行子字符串检查。如果在大数据集上速度慢,你可以创建第二个字典来作为加速。你必须做一次预通过:

^{pr2}$

这将给出每个后缀的所有结果。您可以用同样的方式存储键而不是值,然后链接到查找。在

无论如何,字典键的散列查找非常便宜,因此最好使用您想要的键(即后缀)将数据缓存到字典中,而不是在每个键执行字符串上循环。在

相关问题 更多 >