我有两本字典。在
mydict1 ={
'Better' : {'vara1':'vala1', 'varb1':'valb1'},
'BetterThanBest' : {'vara2':'vala2', 'varb2':'valb2'} }
mydict2 = {
'/check12/BetterThanBest':'/dir3/BetterThanBest' }
for i in mydict2 :
for pattern in mydict1.keys() :
if pattern in i :
print pattern, i
# Do something for i,
# but don't want multiple matches to i, just the best
这将返回:
^{pr2}$我想找一个与我的dict1的键完全匹配,即在上面的例子中“BetterThanBest”。有可能吗?在
谢谢你的回复。在
您可以尝试使用
startswith
和endswith
来执行poor man锚定,但实际上,您可能希望使用regex或带有候选字符串标记化的完全相等性检查来完全匹配您想要的内容。或者使用一个有序的密钥库,根据superset>;subset>;subsubsubset组织搜索词,然后在第一次查找时跳出搜索例程。做一些假设:恐怕您的需求对我来说不是很清楚,但是假设您要做的是将
mydict1
的键与mydict2
中的最后一个单词相匹配(其中/
是单词分隔符),下面是我如何处理它。在它的作用是:
首先,我们创建一个新的dict
d1
,它将从mydict2
的每个键提取的单词映射到原始值。这使我们能够快速地将关键字与提取的单词进行比较,并将其映射到原始值。在接下来我们迭代
mydict1
的键,并将这些键与d2
进行比较。注意:如果
mydict2
中的键产生了重复的单词,那么这将按预期工作。在相关问题 更多 >
编程相关推荐