如何检查一个变量是否与其他两个变量中的至少一个相同?[重复]


问题内容

这个问题已经在这里有了答案

如何针对一个值测试多个变量? (25个答案)

6年前关闭。

我有一个变量,想检查它是否至少与其他两个变量之一匹配。

显然我可以做到:

if a == b or a == c:

但我想知道是否有更短的方法,例如:

if a == (b or c):

如何测试一个变量是否至少与另一个变量相同?


问题答案:

为此用途in

if a in (b, c):

在测试的会员tuple具有的平均情况下O(n)的时间复杂度。如果您有大量的值并且正在对同一值执行许多成员资格测试,则可能值得创建setfor速度:

x = set((b,c,d,e,f,g,h,i,j,k,l,...))
if a in x:
    ...
if y in x:
    ...

一旦它已建成,在测试的会员set拥有的平均情况下O(1)的时间复杂度,因此它可能在长期运行得更快。

或者,您也可以执行以下操作:

if any(a == i for i in (b,c)):