鱼C论坛

 找回密码
 立即注册
查看: 1825|回复: 7

[已解决]这样为什么不行?

[复制链接]
发表于 2020-12-16 19:26:26 | 显示全部楼层 |阅读模式

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

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

x
>>> listn=[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> listn
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> listn.reverse()
>>> listn
[9, 8, 7, 6, 5, 4, 3, 2, 1]
>>> listn.sort(reverse=True)
>>> listn
[9, 8, 7, 6, 5, 4, 3, 2, 1]
>>> listn.sort(reverse=False)
>>> listn
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> listn.sort(sort=True)
Traceback (most recent call last):
  File "<pyshell#37>", line 1, in <module>
    listn.sort(sort=True)
TypeError: 'sort' is an invalid keyword argument for sort()
>>>

最后为什么会报错了呢??list.sort(reverse=True)合法,为什么换成(sort=True)就BUG了呢?
最佳答案
2020-12-16 20:27:13
解决了记得设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-12-16 19:34:36 | 显示全部楼层
本帖最后由 昨非 于 2020-12-16 19:37 编辑

因为你调用的sort是列表的方法
而reverse则是sort方法的参数

这完全是两回事

基础差的话建议先补一下基础吧,学习是个循序渐进的过程
这部分语法可以参考这个:
https://www.runoob.com/python3/python3-att-list-sort.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-16 19:41:43 | 显示全部楼层
昨非 发表于 2020-12-16 19:34
因为你调用的sort是列表的方法
而reverse则是sort方法的参数


# 获取列表的第二个元素
def takeSecond(elem):
    return elem[1]

# 列表
random = [(2, 2), (3, 4), (4, 1), (1, 3)]

# 指定第二个元素排序
random.sort(key=takeSecond)

# 输出类别
print ('排序列表:', random)
以上实例输出结果如下:
排序列表:[(4, 1), (2, 2), (1, 3), (3, 4)]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-16 19:42:43 | 显示全部楼层
tgctg2020 发表于 2020-12-16 19:41
# 获取列表的第二个元素
def takeSecond(elem):
    return elem[1]

这个就看不懂了...为什么会出现这么个排序?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-16 19:46:44 | 显示全部楼层
tgctg2020 发表于 2020-12-16 19:42
这个就看不懂了...为什么会出现这么个排序?


我发的那个链接里有这部分语法讲解
大概意思就是
sort方法的key参数可以自定义
意味着这个排序的规则可以由你自己定

这里规则定位一个函数takeSecind,它的返回值是参数的第二个元素
对应列表里嵌套的元组

就是说,按照列表里元组第二个数的大小对列表里每个元组进行排序
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-16 20:27:13 | 显示全部楼层    本楼为最佳答案   
解决了记得设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-16 21:38:28 | 显示全部楼层
昨非 发表于 2020-12-16 19:46
我发的那个链接里有这部分语法讲解
大概意思就是
sort方法的key参数可以自定义

这里的takeSecond的意思是这4个元组中的第2个元素的意思吗??如果是这样.那好像就明白了.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-16 21:48:01 | 显示全部楼层
tgctg2020 发表于 2020-12-16 21:38
这里的takeSecond的意思是这4个元组中的第2个元素的意思吗??如果是这样.那好像就明白了.

这是一个函数,(一个排序规则)
函数的返回值是其参数的第二个元素
简单来说就是依据元组的第二个值的大小对元组在列表中的顺序进行排序
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-10 21:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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