【问题标题】:Simple Python question: Why can't I assign a variable to a sorted list (in place)? [duplicate]简单的 Python 问题:为什么我不能将变量分配给排序列表(就地)? [复制]
【发布时间】:2020-07-25 05:22:16
【问题描述】:
y = [1, 3, 2, 4]
x = y.sort()
print(x)

x 是None。为什么这种语法适用于例如 Javascript 而不是 Python?

【问题讨论】:

  • 函数需要返回一个值才能使用返回值。请注意 sort 的文档所说的内容。
  • 因为list.sort() 不返回排序后的数组,所以这是就地发生的。这就是python的工作原理/

标签: python


【解决方案1】:

sort(和reverse)就地更改列表。

如果你愿意,可以使用sorted:

x = sorted(y)

这在文档中的Data Structures 部分进行了解释。

【讨论】:

    【解决方案2】:

    因为sort() 是一个就地执行的操作(不需要重新分配)。它返回None,就像append()extend() 和其他列表方法一样。

    【讨论】:

      【解决方案3】:

      在这里,y.sort() 对 y 进行排序,不能分配给另一个变量。在这里,您可以像 x = sorted(y) 一样使用 sorted() 或:

      x = [i for i in sorted(y)]
      

      或者让我们使用漂亮的单线:

      x = [y.pop(y.index(min(y))) for i in range(len(y))]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-27
        相关资源
        最近更新 更多