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

新手上路,请多包涵

我有一组三个变量 x、y、z,我想检查它们是否 都共享相同的值。在我的例子中,该值要么是 1 要么是 0,但我只需要知道它们是否都相同。目前我正在使用

if 1 == x and  1 == y and 1 == z:
    sameness = True

寻找我找到的答案:

 if 1 in {x, y, z}:

然而,这作为

if 1 == x or  1 == y or 1 == z:
    atleastOneMatch = True

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

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

原文由 Nevermore 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 774
2 个回答

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

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

否则,只需对 所有三个变量 使用 ==

 if x == y == z == 1:

如果您只需要知道它们是否都是相同的值(不管那是什么值),请使用:

 if all(v == values[0] for v in values):

或者

if x == y == z:

原文由 Martijn Pieters 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

 sameness = (x == y == z)

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

原文由 Neapolitan 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题