在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)
这更简单,而且速度也更快.