Python - 检查多个变量是否具有相同的值

Nev*_*ore 15 python python-3.x

我有一组三个变量x,y,z,我想检查它们是否共享相同的值.在我的情况下,值将是1或0,但我只需要知道它们是否都是相同的.目前我正在使用

if 1 == x and  1 == y and 1 == z: 
    sameness = True
Run Code Online (Sandbox Code Playgroud)

寻找我找到的答案:

if 1 in {x, y, z}:
Run Code Online (Sandbox Code Playgroud)

但是,这可以作为

if 1 == x or  1 == y or 1 == z: 
    atleastOneMatch = True
Run Code Online (Sandbox Code Playgroud)

是否可以检查每个中是否有1:x,y和z?更好的是,是否有更简洁的方法来检查x,y和z是否相同?

(如果重要的话,我使用python 3)

Mar*_*ers 32

如果您有任意序列,请使用带有生成器表达式all()函数:

values = [x, y, z]  # can contain any number of values
if all(v == 1 for v in values):
Run Code Online (Sandbox Code Playgroud)

否则,只要使用==所有三个变量:

if x == y == z == 1:
Run Code Online (Sandbox Code Playgroud)

如果您只需要知道它们是否都是相同的值(无论值是多少),请使用:

if all(v == values[0] for v in values):
Run Code Online (Sandbox Code Playgroud)

要么

if x == y == z:
Run Code Online (Sandbox Code Playgroud)

  • @DeSanta:但这会创建两个新列表。 (2认同)

Nea*_*tan 6

要检查它们是否都相同(1 或 2):

sameness = (x == y == z)
Run Code Online (Sandbox Code Playgroud)

括号是可选的,但我发现它提高了可读性