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

Dro*_*ids 3 python equality

我有一个变量,并想检查它是否与其他两个变量中的至少一个匹配.

显然,我可以这样做:

if a == b or a == c:
Run Code Online (Sandbox Code Playgroud)

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

if a == (b or c):
Run Code Online (Sandbox Code Playgroud)

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

ssh*_*124 13

为此用途in:

if a in (b, c):
Run Code Online (Sandbox Code Playgroud)

测试a tuple中的成员资格具有O(n)时间复杂性的平均情况.如果您有大量值并且正在对同一个值集合执行许多成员资格测试,那么创建set速度可能是值得的:

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

一旦构建完成,对其成员资格的测试set具有O(1)时间复杂度的平均情况,因此从长远来看可能更快.

或者,您也可以这样做:

if any(a == i for i in (b,c)):
Run Code Online (Sandbox Code Playgroud)