python - list.sort() 不返回排序后的列表

标签 python

我正在开始使用 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/

相关文章:

Python 列表中的 append 元素随着其原始变量的变化而变化

python - 删除嵌套列表中的重复项(不删除子列表中的重复元素)

python - Pywinauto 计时等待 0.5 秒而不是立即

python - Tastypie 和 JSON Field 序列化问题

python - 找不到资源 u'tokenizers/punkt/english.pickle'

python - 在 Python 中如何获取字典的部分 View ?

python - 如何使用 matplotlib.pyplot 更改表格的字体大小

Python SQLAlchemy ORM - 表反射*无*约束和索引反射

python - 如何取出数据框中的列索引名称

python - 无法弄清楚递归函数