【问题标题】:How is this unexpected comparison output produced?这种意想不到的比较输出是如何产生的?
【发布时间】:2015-09-22 12:07:38
【问题描述】:

为什么我会从下面的表达式中得到一个包含三个元素的元组?

>>> 1,2 == 1,2
(1, False, 2)

【问题讨论】:

  • 你是什么意思“如何”?!您正在评估(1, (2 == 1), 2)。你期待什么?你的意思是(1, 2) == (1, 2)

标签: python python-2.7 comparison tuples


【解决方案1】:

因为== 运算符比, 运算符具有higher operator precedence,所以您的表达式被解析为:

1, (2 == 1), 2

使用文字 12 == 1 的结果 -> False 和文字 2 生成一个元组。

您可以在 1, 2 元组周围加上括号以强制使用不同的解析顺序:

>>> (1, 2) == (1, 2)
True

【讨论】:

  • 现在知道了,+1 >>> 5,6,8 == 1,2,3, 5==5 >>> (5, 6, False, 2, 3, True)
  • @VivekSable 是的-您示例中的空格无关紧要,只有运算符(及其优先级)很重要
  • 嗯,我只是在 Python Shell 上玩来检查不同的情况并得到结果。
【解决方案2】:

表达式1,2 == 1,2 被解释为三个元素的元组,12 == 1(即False)和2

【讨论】:

    猜你喜欢
    • 2022-01-02
    • 2019-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-01
    • 2020-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多