我的python方法定义如下。我尝试匹配与 clientname 参数
匹配的字典元素def loadSites(self, fpath, clientname):
keylist = [re.findall(clientname,k) for k in self.cacheDictionary.keys()]
for items in keylist:
print(items)
当我打印列表时,我得到了;
['testClient']
['testClient']
[]
[]
[]
[]
我希望只有两个元素。我在这里做错了什么?
另外,如何从字典中删除该项?
答案 0 :(得分:1)
如果只想在匹配时返回两个元素。
keylist = [re.findall(clientname,k) if(re.findall(clientname,k)) else None for k in self.cacheDictionary.keys()]
for items in keylist:
print(items)
答案 1 :(得分:1)
re.findall
将返回空{{1}}。您可以简单地filter
这些。请注意,当您迭代{{1}}时,会自动迭代键:
{{1}}
如果你想删除与你的模式匹配的dict中的所有键,并且实际上包含字符串,那么有许多选项不需要正则表达式,例如:
{{1}}
或者只是在一次迭代中理解一个新的{{1}}表单划痕:
{{1}}