我的代码中有一个if
条件,例如:
a = [1,2,3]
b = [4,5,6]
c = [7,8,9]
当{ 1 在 a 中)或( 1 时,我希望'If'
返回 true >在 b )或( 1 在 c 中)或( 5 在 a )或( 5 在 b 中)或( 5 在 c 中)
我试过了:
if (1 or 5) in (a or b or c):
pass
但这显然没有这样做。 你能给我一个暗示吗?感谢
答案 0 :(得分:2)
你应该使用套装:
a = {1, 2, 3}
b = {4, 5, 6}
c = {7, 8, 9}
a | b | c
#>>> {1, 2, 3, 4, 5, 6, 7, 8, 9}
{1, 5} & (a | b | c)
#>>> {1, 5}
bool({1, 5} & (a | b | c))
#>>> True
if {1, 5} & (a | b | c):
print("Yeah!")
#>>> Yeah!
if not {1, 5}.isdisjoint(a | b | c):
print("Yeah!")
#>>> Yeah!
如果您想要短路:
if not all({1, 5}.isdisjoint(items) for items in (a, b, c)):
print("Yeah!")
#>>> Yeah!
答案 1 :(得分:0)
这似乎对我有用,虽然可能有一个内置来连接三个列表。
a = [1,2,3]
b = [4,5,6]
c = [7,8,9]
target = [1,5]
any(x for x in (a+b+c) if x in target)
True