从三个选择中检查两个变量是否相等

Pep*_*o33 1 python

我有三个整数,我需要检查两个整数是否相等。我的代码很丑陋:

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

我想知道是否有比这种比较更好的选择。

yat*_*atu 5

您可以构建一个set并检查结果长度:

a = 5
b = 7
c = 5

if len({a,b,c}) < 3:
    pass
Run Code Online (Sandbox Code Playgroud)

由于您在实际情况中提到的变量是列表,因此您可以将它们转换为tuples可哈希的,从而可以从中构建一个集合。因此,您可以执行以下操作:

a = [5, 2]
b = [7, 2]
c = [5, 2]

if len(set(map(tuple, [a,b,c]))) < 3:
    pass
Run Code Online (Sandbox Code Playgroud)