Python 检查三个选项中的两个变量是否相等

Python 检查三个选项中的两个变量是否相等,python,Python,我有三个整数,我需要检查其中两个是否相等。我的代码很难看: a = 5 b = 7 c = 5 if a == b or b == c or a == b: pass 我想知道是否有更好的方法来替代这种比较。您只需构建一个集合并检查结果长度: a = 5 b = 7 c = 5 if len({a,b,c}) < 3: pass 您只需构建一个集合并检查结果长度: a = 5 b = 7 c = 5 if len({a,b,c}) < 3: pass

我有三个整数,我需要检查其中两个是否相等。我的代码很难看:

a = 5
b = 7
c = 5
if a == b or b == c or a == b:
    pass
我想知道是否有更好的方法来替代这种比较。

您只需构建一个集合并检查结果长度:

a = 5
b = 7
c = 5

if len({a,b,c}) < 3:
    pass
您只需构建一个集合并检查结果长度:

a = 5
b = 7
c = 5

if len({a,b,c}) < 3:
    pass

因为您有列表,所以无法直接使用集合。如果是,您将得到一个错误:

TypeError:不可损坏的类型:“列表”

将列表转换为元组,然后使用以下命令:

if len(set([tuple(a),tuple(b), tuple(c)])) < 3:
    pass

因为您有列表,所以无法直接使用集合。如果是,您将得到一个错误:

TypeError:不可损坏的类型:“列表”

将列表转换为元组,然后使用以下命令:

if len(set([tuple(a),tuple(b), tuple(c)])) < 3:
    pass

在我的真实例子中,整数比其他东西长是什么意思?@Imiguelvargasf这只是一个例子,在我的真实程序中,变量是列表,但它不是相关的,有点神秘,而是更短,len{a,b,c}<3@DanielMesejo无法处理真实的列表usecase@DeepSpace你是对的,可以转换为元组在我的真实例子中,整数是什么意思?这只是一个例子,在我的真实程序中,变量是列表,但它不是相关的有点神秘,而是更短,len{a,b,c}<3@DanielMesejo无法处理真实的列表usecase@DeepSpace你是对的,可以转换为元组您可以使用set literal,这样您就不会构建并丢弃一个列表{a,b,c},但这并不重要,因为OP的变量是不可破坏的列表,或者一般来说:lst=[a,b,c];感谢您指出@DeepSpace。名单?在任何地方都提到过吗?哦,我看到在@deepspace的注释中提到了它。你可以使用set literal,这样你就不会构建并丢弃一个列表{a,b,c},但这并不重要,因为OP的变量是不可破坏的列表,或者一般来说:lst=[a,b,c];感谢您指出@DeepSpace。名单?有人提到过吗?哦,我在评论@DeepSpace中看到了