Python在列表中使用for循环的IN和OR运算符

Python在列表中使用for循环的IN和OR运算符,python,list,for-loop,boolean,in-operator,Python,List,For Loop,Boolean,In Operator,我对在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: ...

我对在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??
还有什么正确的方法可以做到这一点,这样我就可以遍历一个列表并检查每个元素是否至少在其他列表中的一个列表中?

您需要在中使用
两次:

if i in even or i in odd:
i处于偶数状态
将检查
i
是否处于
偶数状态
i in odd
将检查
i
是否在
odd


否则,您的代码将按如下方式计算:

if (i in even) or (odd):
此外,if语句的条件将始终计算为
True
,因为
odd
是一个非空列表(在Python中总是计算为
True



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

您需要在中使用
两次:

if i in even or i in odd:
i处于偶数状态
将检查
i
是否处于
偶数状态
i in odd
将检查
i
是否在
odd


否则,您的代码将按如下方式计算:

if (i in even) or (odd):
此外,if语句的条件将始终计算为
True
,因为
odd
是一个非空列表(在Python中总是计算为
True



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

问题就在这里:
i是偶数还是奇数

这被解析为:

(i为偶数)或(奇数)

Python试图将
odd
列表转换为布尔值(在本例中为
True
),但没有任何帮助


请尝试
i in偶数或i in奇数
,这样可以正确检查
i
偶数
奇数
中是否存在问题:
i in偶数或奇数

这被解析为:

(i为偶数)或(奇数)

Python试图将
odd
列表转换为布尔值(在本例中为
True
),但没有任何帮助

尝试
i为偶数或i为奇数
,这将正确检查
i
是否出现在
偶数
奇数