【问题标题】:Python the IN and OR operators with a for loop in a list [duplicate]Python IN 和 OR 运算符与列表中的 for 循环 [重复]
【发布时间】:2014-03-14 08:44:00
【问题描述】:

我对在 python 中执行此操作的正确方法感到困惑......因此,如果我想使用 for 循环遍历列表并检查列表“A”的每个元素是否在 2 个或多个其他元素中列表,但我似乎不明白如何做到这一点......这是我的意思的一些基本代码:

>>> a
[1, 2, 3, 4, 5]
>>> even
[2, 4]
>>> odd
[1, 3]
>>> for i in a:
...     if i in even or odd:
...             print(i)
... 
1
2
3
4
5

为什么这段代码会打印 5,因为 5 既不在偶数列表中,也不在奇数列表中? 还有什么是正确的方法来做到这一点,以便我可以遍历一个列表并检查每个元素是否在至少一个其他数量的列表中?

【问题讨论】:

    标签: python list for-loop boolean in-operator


    【解决方案1】:

    问题出在这里:i in even or odd

    这样解析:

    (i in even) or (odd).

    Python 尝试将 odd 列表转换为布尔值(在本例中为 True because the list is not empty),但毫无帮助。

    尝试i in even or i in odd,它会正确检查i 是否存在于evenodd 中。

    【讨论】:

      【解决方案2】:

      你需要使用in两次:

      if i in even or i in odd:
      

      i in even 将检查i 是否在even 中。 i in odd 将检查 i 是否在 odd 中。


      否则,您的代码将被这样评估:

      if (i in even) or (odd):
      

      此外,if 语句的条件将始终评估为 True,因为 odd 是一个非空列表(在 Python 中始终评估为 True)。


      最后,您需要记住,尽管它的语法有些相似,但 Python 不是英语。 :)

      【讨论】:

        猜你喜欢
        • 2019-06-05
        • 2021-11-08
        • 1970-01-01
        • 2020-09-08
        • 2017-03-20
        • 1970-01-01
        • 2016-11-07
        • 1970-01-01
        • 2021-06-30
        相关资源
        最近更新 更多