如何在单个if条件中使用in与not in运算符?语法报错求助
正确判断元素在两个列表中的存在状态写法
你的代码报错是因为Python要求逻辑运算符and两边必须是完整的布尔表达式,not in list2前面缺少了判断的主体(也就是要检查的元素),而且你还拼写错了element(写成了elemnt)。
以下是各种场景的正确写法:
1. 元素仅存在于list1
# 修正拼写+补全表达式 if element in list1 and element not in list2: print("元素只存在于list1中")
2. 元素仅存在于list2
if element not in list1 and element in list2: print("元素只存在于list2中")
3. 元素同时存在于两个列表
if element in list1 and element in list2: print("元素同时存在于list1和list2中")
如果需要频繁做这类判断,用集合会更高效(集合的成员查询时间复杂度是O(1),列表是O(n)):
set1 = set(list1) set2 = set(list2) if element in set1 - set2: print("元素只在list1中") elif element in set2 - set1: print("元素只在list2中") elif element in set1 & set2: print("元素同时在两个列表中") else: print("元素不在任何一个列表中")
内容的提问来源于stack exchange,提问作者Ajay A
相关产品推荐
相关产品推荐

