2024-09-27 04:26:49 发布
网友
我有一个固定的字符串列表。我需要检查这些字符串中是否有一个是字典中的键(只需要True或False)。我可以走了
if 'asdf' in dict or 'qwer' in dict or 'zxcv' in dict ... : ... do important secret stuff ...
但这似乎不太理想。有没有更习惯的方法来做这件事?
您可以使用any并遍历要检查的每个键
any
if any(key in dict for key in ['asdf', 'qwer', 'zxcf']): # contains at least one of them
这将短路并在找到第一个匹配项时返回True,如果没有找到匹配项,则返回False。
True
False
您可以尝试在python中使用列表理解:
if any([True for entry in your_list if entry in dict]): --dostuff--
编辑:CoryKramer建议删除“[]”以使其成为生成器,而不是在检查任何元素是否为“True”之前评估整个列表:
if any(True for entry in your_list if entry in dict): --dostuff--
您还可以使用&:
&
keys = ['asdf', 'qwer', 'zxcf'] if d.keys() & keys: print(d)
对于python2,您需要d.viewkeys()。
d.viewkeys()
或者,将键设为set,并查看集是否不相交,这将是最快的方法:
set
keys = {'asdf', 'qwer', 'zxcf'} if not keys.isdisjoint(d): print(d)
您可以使用
any
并遍历要检查的每个键这将短路并在找到第一个匹配项时返回
True
,如果没有找到匹配项,则返回False
。您可以尝试在python中使用列表理解:
编辑:CoryKramer建议删除“[]”以使其成为生成器,而不是在检查任何元素是否为“True”之前评估整个列表:
您还可以使用
&
:对于python2,您需要
d.viewkeys()
。或者,将键设为
set
,并查看集是否不相交,这将是最快的方法:相关问题 更多 >
编程相关推荐