为什么此Python表达式无法产生预期的结果?

此代码段:

a = [3, 2, 1]
a.sort()

产生[1, 2, 3]清单。为什么

[3, 2, 1].sort()

不会产生相同的结果?是否有一个“单一路线”来实现这一目标?


HUWWW
浏览 414回答 3
3回答

繁华开满天机

您可以使用sorted_array = sorted([2,3,1])

白猪掌柜的

>>> [3, 2, 1].sort()它确实对该列表对象进行了排序,但是由于对该列表的引用(指向变量的数量)为0,因此将其进行垃圾回收。(即,我们无法再访问此列表)谈到第一个问题,list.sort()就地对列表进行排序并返回None。>>> a = [3, 2, 1]>>> a.sort()    >>> a[1, 2, 3]如果要a保持原样,请使用sorted并将结果分配回某个变量。>>> a = [3, 2, 1]>>> b = sorted(a)>>> b[1, 2, 3]>>> a[3, 2, 1]

holdtom

list.sort 是对现有列表进行排序的方法,因此返回 Nonesorted 是一个内置函数,可根据其输入创建一个新的排序列表并返回它。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python