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

Nit*_*tro 1 python for-loop boolean list 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:
...             print(i)
... 
1
2
3
4
5
Run Code Online (Sandbox Code Playgroud)

为什么这个代码打印5因为5不在偶数列表中,也不在奇数列表中?另外,正确的方法是什么,以便我可以迭代一个列表并检查每个元素是否在ATLEAST中的其他一些列表中?

Bop*_*reH 5

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

这被解析为:

(i in even) or (odd).

Python无益地尝试将odd列表转换为布尔值(在这种情况下,True 因为列表不为空).

尝试i in even or i in odd,正确检查是否i存在于even或中odd.