检查字典中是否有任何键列表

2024-09-27 04:26:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个固定的字符串列表。我需要检查这些字符串中是否有一个是字典中的键(只需要True或False)。我可以走了

if 'asdf' in dict or 'qwer' in dict or 'zxcv' in dict ... :
    ... do important secret stuff ...

但这似乎不太理想。有没有更习惯的方法来做这件事?


Tags: or字符串infalsetrue列表secretif
3条回答

您可以使用any并遍历要检查的每个键

if any(key in dict for key in ['asdf', 'qwer', 'zxcf']):
    # contains at least one of them

这将短路并在找到第一个匹配项时返回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()

或者,将键设为set,并查看集是否不相交,这将是最快的方法:

keys =  {'asdf', 'qwer', 'zxcf'}

if not keys.isdisjoint(d):
    print(d)

相关问题 更多 >

    热门问题