鱼C论坛

 找回密码
 立即注册
查看: 1190|回复: 3

列表的sort函数

[复制链接]
发表于 2019-8-9 09:20:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
list2 = [2,4,6,1,78,86,23,9]
list3 = list2.sort(reverse = True)
print (list3)
为什么运行之后这里的list3显示是None,是怎么回事呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-8-9 09:25:12 | 显示全部楼层
可变对象的方法没有返回值。也就是说 list2.sort() 改变 list2 本身,并没有返回值,所以为 None
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2019-8-9 09:34:16 | 显示全部楼层
你应该是想把原先的列表从高到低排序后放到list3里面吧。

这个sort函数是对原先的列表进行永久性排序,而且没有返回值,自然而然的你排序后list2变为了[86,78,23,9,6,4,2,1],但是list3值为None(因为右边的函数没有返回值嘛)。

你可以使用sorted函数进行临时排序,然后将排序好的列表赋值给list3,就能得到你要的结果了。此时list2的值是不变的,但是list3就变为了list2从打到小排列的结果。

  1. >>> list2 = [2,4,6,1,78,86,23,9]
  2. >>> list3 = sorted(list2,reverse=True)
  3. >>> print(list3)
  4. [86, 78, 23, 9, 6, 4, 2, 1]
  5. >>> print(list2)
  6. [2, 4, 6, 1, 78, 86, 23, 9]
复制代码


总结:
1、要是想对原始列表进行永久排序,使用sort函数;
2、要是只是想对原始列表进行临时排序,使用sorted函数;
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2019-8-9 10:11:37 | 显示全部楼层
list2 = [2,4,6,1,78,86,23,9]
list3 = list2[:]
list3 . sort(reverse = True)
print (list3)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-17 13:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表