为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

HUWWW 2021-04-02 10:09:38
此代码段:a = [3, 2, 1] a.sort()产生[1, 2, 3]清单。为什么[3, 2, 1].sort()不会产生相同的结果?是否有一个“单一路线”来实现这一目标?
查看完整描述

3 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

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

查看完整回答
反对 回复 2021-04-05
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

>>> [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]


查看完整回答
反对 回复 2021-04-05
?
holdtom

TA贡献1805条经验 获得超10个赞

list.sort 是对现有列表进行排序的方法,因此返回 None

sorted 是一个内置函数,可根据其输入创建一个新的排序列表并返回它。


查看完整回答
反对 回复 2021-04-05
  • 3 回答
  • 0 关注
  • 413 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号