Python - 检查元素是否同时位于两个列表中

Muh*_*qar 6 python list

在Python中,为了检查元素是否在两个列表中,我们这样做

if elem in list1 and elem in list2:
Run Code Online (Sandbox Code Playgroud)

我们可以为此目的做以下事吗?

if elem in (list1 and list2):
Run Code Online (Sandbox Code Playgroud)

aba*_*ert 14

你不能.

list1 and list2意思是" list1如果它是空的,list2否则".因此,这不会检查您要检查的内容.

在交互式解释器中尝试并查看.


执行此操作的简单方法是您已有的代码:

if elem in list1 and elem in list2:
Run Code Online (Sandbox Code Playgroud)

它很有效,很容易阅读,写起来很明显.如果有一种明显的方法可以做某事,Python通常会尽量避免添加不会增加任何好处的同义词.("TOOWTDI",或"应该有一个 - 最好只有一个 - 明显的方式来做它.")


如果您正在寻找以某种特定方式更好的答案,而不仅仅是不同的,根据您的需要,有不同的选项.

例如,如果您要经常进行此检查:

elems_in_both_lists = set(list1) & set(list2)
Run Code Online (Sandbox Code Playgroud)

现在你可以这样做:

if elem in elems_in_both_lists:
Run Code Online (Sandbox Code Playgroud)

这更简单,而且速度也更快.