鱼C论坛

 找回密码
 立即注册
查看: 1383|回复: 8

.sort()排序问题。

[复制链接]
发表于 2021-8-12 11:02:52 | 显示全部楼层 |阅读模式

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

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

x
[code]def takeSecond(elem):
    return elem[1]


x = [(2, 2), (3, 4), (4, 1), (1, 3)]
x.sort(key=takeSecond)
print(x)
# [(4, 1), (2, 2), (1, 3), (3, 4)]

x.sort(key=lambda a: a[0])
print(x)
# [(1, 3), (2, 2), (3, 4), (4, 1)]



这个key=takeSecond说是指定第二个元素为排序方法,这个不理解如何以第二个元素为排序方法的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-12 11:06:26 | 显示全部楼层
切片[1]是第二个元素

等价于x.sort(key=lambda takeSecond: takeSecond[1])
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-12 11:24:51 | 显示全部楼层
逃兵 发表于 2021-8-12 11:06
切片[1]是第二个元素

等价于x.sort(key=lambda takeSecond: takeSecond[1])

还是不太懂,我想知道它是哪种规则排列的,比如升序降序之类的。主要现在我不太理解这个规则
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-12 11:28:21 | 显示全部楼层
Underwood 发表于 2021-8-12 11:24
还是不太懂,我想知道它是哪种规则排列的,比如升序降序之类的。主要现在我不太理解这个规则

https://www.runoob.com/python/att-list-sort.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-12 13:45:02 | 显示全部楼层
逃兵 发表于 2021-8-12 11:28
https://www.runoob.com/python/att-list-sort.html

你发错了 你发的python2的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-12 13:46:31 | 显示全部楼层
本帖最后由 kogawananari 于 2021-8-12 13:53 编辑

原本python2的sort有cmp参数可以控制用什么排序以及排序升降 现在python3里没了

可以自己实现一个sort函数 算法是快速排序 然后快排中交换变量 用的是你传入的cmp函数 处理交换的两个对象就行了  一般默认是两个对象做减法 大于0就交换位置  如果你传进去的cmd函数return的是差小于0 就会变成降序  做差的是两个对象的第二项或者其他属性 也可以实现
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-12 13:52:48 | 显示全部楼层
kogawananari 发表于 2021-8-12 13:46
原本python2的sort有cmp参数可以控制用什么排序以及排序升降 现在python3里没了

又发错了吗
https://www.runoob.com/python3/python3-att-list-sort.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-12 13:55:12 | 显示全部楼层
逃兵 发表于 2021-8-12 13:52
又发错了吗
https://www.runoob.com/python3/python3-att-list-sort.html

主要是你发的里面那个cmp参数实属太犯规 另外两个参数key和reverse意义不大了 如果cmp能用也就没这个问题了 看我另一个回答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-16 07:19:04 | 显示全部楼层
Underwood 发表于 2021-8-12 11:24
还是不太懂,我想知道它是哪种规则排列的,比如升序降序之类的。主要现在我不太理解这个规则



他是按照你 key 函数中取出的数大小排序,默认从小到大

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-8 04:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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