Python'if`claus的逻辑规则

2024-04-24 04:06:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码中有一个if条件,例如:

a = [1,2,3]
b = [4,5,6]
c = [7,8,9]

我想'If'在(1a中)或(1b中)或(1c中)或(5a中)或(5b中)或(5c中)时返回true你知道吗

我试过:

if (1 or 5) in (a or b or c):
    pass

但显然不是这样的。 你能给我一个提示吗?谢谢


Tags: or代码intrueifpass条件
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!

这似乎对我有用,尽管可能有一个内置的链接三个列表。你知道吗

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

相关问题 更多 >