2024-06-16 13:49:05 发布
网友
p/S:到目前为止提出的重复问题都是关于前缀的(不管怎样还是要谢谢你) 这个问题是关于后缀的。在
有字典吗
dic={"abcd":2, "bbcd":2, "abgg":2}
是否可以使用字符串的后缀来搜索字典,也就是说,如果给定“bcd”,它将返回两个条目
一种可能的方法:
dic1={} for k, v in dic.items(): if(k.endswith("bcd")): dic1[k]=v
有没有可能提高效率?在
对于一个小问题集,你可以通过简单的列表理解来完成:
suffixed = [v for k, v in dic.items() if k.endswith("bcd")]
但是,这意味着每次查询时都要对字典中的每个项执行子字符串检查。如果在大数据集上速度慢,你可以创建第二个字典来作为加速。你必须做一次预通过:
这将给出每个后缀的所有结果。您可以用同样的方式存储键而不是值,然后链接到查找。在
无论如何,字典键的散列查找非常便宜,因此最好使用您想要的键(即后缀)将数据缓存到字典中,而不是在每个键执行字符串上循环。在
对于一个小问题集,你可以通过简单的列表理解来完成:
但是,这意味着每次查询时都要对字典中的每个项执行子字符串检查。如果在大数据集上速度慢,你可以创建第二个字典来作为加速。你必须做一次预通过:
^{pr2}$这将给出每个后缀的所有结果。您可以用同样的方式存储键而不是值,然后链接到查找。在
无论如何,字典键的散列查找非常便宜,因此最好使用您想要的键(即后缀)将数据缓存到字典中,而不是在每个键执行字符串上循环。在
相关问题 更多 >
编程相关推荐