【问题标题】:How does Python compare two lists of unequal length? [duplicate]Python 如何比较两个长度不等的列表? [复制]
【发布时间】:2020-06-16 10:20:24
【问题描述】:

我知道以下几点:

  • [1,2,3]<[1,2,4] 是 True,因为 Python 从左到右进行逐元素比较,3 < 4
  • [1,2,3]<[1,3,4] 是 True 因为 2 < 3 所以 Python 甚至从不费心比较 3 和 4

我的问题是,当我比较两个长度不等的列表时,Python 的行为有何变化?

  • [1,2,3]<[1,2,3,0] 是 True
  • [1,2,3]<[1,2,3,4] 是 True

这让我相信较长的列表总是大于较短的列表。但后来:

  • [1,2,3]<[0,0,0,0] 是 False

谁能解释一下 Python 是如何进行这些比较的?

我的直觉是,首先尝试按元素进行比较,并且只有当两个列表中的第一个 n 元素相同(其中 n 是较短列表中的元素数)时,Python 才会考虑较长的列表要更大。如果有人可以确认这一点或阐明这种行为的原因,我将不胜感激。

【问题讨论】:

标签: python python-3.x list


【解决方案1】:

标准比较(、>=、==、!=、in、not in)在列表、元组和字符串之间的工作方式完全相同。

列表逐个元素进行比较。

如果它们是可变长度的,它会持续到较短列表的最后一个元素

如果它们从开始到较小的长度相同,则比较长度,即越短越小

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-24
    • 1970-01-01
    • 2019-02-17
    • 2021-02-25
    • 1970-01-01
    • 2018-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多