Python 检查字典的任何键中是否出现字符串
我试图检查字符串是否在字典的一个键中Python 检查字典的任何键中是否出现字符串,python,dictionary,Python,Dictionary,我试图检查字符串是否在字典的一个键中 if message in a_dict: # this will only work if message is exactly one of the keys #do stuff 我希望条件返回True,即使message只是a_dict的一个键的一部分 我该怎么做?有没有办法在字符串中添加regex*?或者有更好的方法吗?您可以使用任何: elif any(message in key for key in a_dict): do_s
if message in a_dict: # this will only work if message is exactly one of the keys
#do stuff
我希望条件返回True
,即使message
只是a_dict
的一个键的一部分
我该怎么做?有没有办法在字符串中添加regex
*
?或者有更好的方法吗?您可以使用任何
:
elif any(message in key for key in a_dict):
do_something()
如果您还需要包含消息的密钥:
else:
key = next((message in key for key in a_dict), None)
if key is not None:
do_something(key)
使用Python的
in
操作符不能真正实现您想要的功能。最好用手进行检查-迭代所有键,查看其中是否有任何键包含您的消息
,然后您需要迭代键并检查每个键。这确实意味着失去了字典的很多效率。很好,有没有一种方法可以将key
转换为dou\u some
?您只需要一个键还是所有包含消息的键?嗯,使用这两个示例是否都有问题,例如:elif…:key=next…
BC当我尝试此操作时,下一个函数似乎随机返回false/true。第二个示例对我不起作用。我试着这样做来看看问题是什么:key=list(message in key for key in a dict)
这返回了一个真/假值列表,而不是key。好的,我使用了这个list(key for key in a dict if message in key)
,它工作了。