此代码段:
a = [3, 2, 1]
a.sort()
生成[1, 2, 3]
列表。为什么
[3, 2, 1].sort()
不会产生相同的结果?是否有“一线”来实现这一目标?
答案 0 :(得分:3)
你可以使用
sorted_array = sorted([2,3,1])
答案 1 :(得分:2)
>>> [3, 2, 1].sort()
它会对此列表对象进行排序,但由于此列表的引用数(指向的变量)为 0 ,因此它是垃圾回收的。(即我们不能再访问此列表)< / p>
转到第一个问题,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]
答案 2 :(得分:1)
list.sort
是一种对现有列表进行排序的方法,因此返回None
sorted
是一个内置函数,它从输入中创建一个新的排序列表并返回它。