Python 如何验证每个列表是否包含一个公共编号?

Python 如何验证每个列表是否包含一个公共编号?,python,arrays,list,numbers,set,Python,Arrays,List,Numbers,Set,每个列表都包含数字1,因此我希望它打印aa,但即使我将True更改为False,它也会打印ss。这是因为seta&setb&setc是真实的,但不是与True相同的对象,这就是您正在使用seta&setb&setc检查的内容。它们具有不同的ID: a = [1,2,3] b = [0,1,0] c = [5,1,5] if set(a)&set(b)&set(c) is True: print("aa") else: print('ss') 只需将真实的部分省

每个列表都包含数字1,因此我希望它打印aa,但即使我将True更改为False,它也会打印ss。

这是因为seta&setb&setc是真实的,但不是与True相同的对象,这就是您正在使用seta&setb&setc检查的内容。它们具有不同的ID:

a = [1,2,3]
b = [0,1,0]
c = [5,1,5]

if set(a)&set(b)&set(c) is True:
    print("aa")
else:
    print('ss')
只需将真实的部分省略,即

>>> id(set(a)&set(b)&set(c)) 
140627137313352
>>> id(True)
9544944
这是真的


seta&setb&setc返回set[1],它不是真的。

若语句有点错误,那个么您就错了。如果您想查看1是否在a、b、c中,请尝试

a=[1,2,3]
b=[0,1,0]
c=[5,1,5]
if set(a)&set(b)&set(c):
    print("aa")
else:
    print('ss')
您可以尝试:


你为什么需要n?@wil93:我把它拿走了。@KevinGuan嗯。。。好吧,也许OP把它放在这里是有原因的?
a=[1,2,3]
b=[0,1,0]
c=[5,1,5]
if set(a)&set(b)&set(c):
    print("aa")
else:
    print('ss')
if 1 in a and b and c:

    print('aa')
a = [1,2,3]
b = [0,1,0]
c = [5,1,5]

d = set.intersection(set(a), set(b), set(c)) #set([1])