【问题标题】:'if' 'or'- statement in dictionary always returns TRUE'if' 'or'- 字典中的语句总是返回 TRUE
【发布时间】:2021-03-18 17:58:39
【问题描述】:

我有这个 python 字典:

event_dict = {
            'False': 1,
            'Hit': 2,
            'MP1': 3,
            'MP2': 4,
            'MP3': 5,
            'M_False': 6,
            'M_Hit': 7,
            'OGT': 8,
            'PMC': 9,
            'S  4': 10,
            'actiCAP Data On': 11,
            'boundary': 12
 }

我编写了这段代码来检查条目“TriEVE”、“TriODD”、“TriPMC”是否在字典中(它们不是!):

if "TriEVE" or "TriODD" or "TriPMC" in event_dict:
    print('THIS SESSION HAS BAD ANNOTATIONS!!!!!!!')

代码返回:

THIS SESSION HAS BAD ANNOTATIONS!!!!!!!

我尝试只使用一个输入(不带“或”)使用“if”语句,例如:

if "TriEVE" in event_dict:
    print('THIS SESSION HAS BAD ANNOTATIONS!!!!!!!')
    print(subject)

正如预期的那样,代码什么也不返回。

为什么在这种情况下我不能使用“或”语句?有没有一种更智能的方法可以一次搜索多个字典条目?

【问题讨论】:

    标签: python-3.x dictionary if-statement


    【解决方案1】:

    在这种情况下,你想要

    if "TriEVE" in event_dict.keys() or "TriODD" in event_dict.keys() or "TriPMC" in event_dict.keys():
    

    这是因为任何非零或非无在 Python 中都被评估为 True 由于您似乎想搜索字典的键,因此如果您想查看值,则必须使用 .keys() 或 .values() 。对象本身在这种情况下没有用

    【讨论】:

      猜你喜欢
      • 2016-01-04
      • 2015-12-16
      • 2016-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-08
      • 1970-01-01
      • 2016-02-15
      相关资源
      最近更新 更多