我正在开始使用 python,并且对为什么以下输出有点困惑 None
:
x= [3,1,2]
y = x.sort()
print(y) # output = None
我原本期望输出为 [1,2,3],但结果却是 None。 请注意:我现在知道如何获得正确的输出,但仍然对这里发生的情况感到好奇,因为输出为零。 在我看来,第二行评价 x.sort() 为 [1,2,3],然后将其分配给变量 y。
最佳答案
列表的文档告诉您,在列表上调用排序方法将执行就地排序。即它会对当前对象内的值进行排序。因此它不会返回任何值供您存储在 y 中。
>>> x = [3,1,2]
>>> x.sort()
>>> print(x)
[1, 2, 3]
但是,您可能有合理的理由想要对 X 列表进行排序而不实际更改它,而是将排序后的输出存储为新对象。您可以通过将 X 传递给排序函数来完成此操作
>>> x = [3,1,2]
>>> y = sorted(x)
>>> print(x, y)
[3, 1, 2] [1, 2, 3]
关于python - list.sort() 不返回排序后的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54462075/