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

How do I verify if every list contains a common number?

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

那是因为 set(a)&set(b)&set(c) 是真实的,但与 True 不是同一个对象,这是您正在检查的对象 set(a)&set(b)&set(c) is True (它们具有不同的 ID):

>>> id(set(a)&set(b)&set(c)) 
140627137313352
>>> id(True)
9544944

只留下 is True 部分,即

if set(a)&set(b)&set(c): # truthy if not empty
    print('aa')
else:
    print('ss')

删除is True

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

set(a)&set(b)&set(c) returns set([1]) 这不是 True.

你的 if 语句有点错误。如果你想看看 1 是否在 a,b,c 中,试试

if 1 in a and b and c:

    print('aa')

你可以试试set.intersection():

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

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