鱼C论坛

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

[已解决]sort

[复制链接]
发表于 2020-2-17 19:01:28 | 显示全部楼层 |阅读模式

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

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

x
求教大神:sort()的作用是按特定顺序排列(从小到大)吗?
它的具体用法是怎么样的呢?如果要从大到小排列,又要怎么操作?


万分感谢!!!
最佳答案
2020-2-17 19:32:56
sort(*,key = None,reverse = False)
此方法仅使用<项目之间的比较来对列表进行排序。异常不会被抑制-如果任何比较操作失败,则整个排序操作都会失败(并且列表很可能会处于部分修改的状态)。

sort()接受两个只能通过关键字传递的参数(仅关键字参数):

key指定一个参数的功能,该参数用于从每个列表元素中提取比较键(例如,key = str.lower)。列表中与每个项目相对应的键仅计算一次,然后用于整个排序过程。默认值“无”表示列表项直接排序而无需计算单独的键值。

functools.cmp_to_key()实用程序可用于将2.x样式cmp函数转换为键函数。

reverse是一个布尔值。如果设置为True,则对列表元素进行排序,就好像每个比较都被反转一样。

当对大序列进行排序时,此方法会修改序列以节省空间。为了提醒用户它具有副作用,它不会返回排序后的序列(使用sorted()显式请求一个新的排序后的列表实例)。

保证sort()方法是稳定的。如果可以保证不更改比较相等的元素的相对顺序,则排序是稳定的-这有助于多次通过排序(例如,按部门排序,然后按薪级排序)。

有关排序示例和简短的排序教程,请参阅排序方式。

CPython实现细节:在对列表进行排序时,尝试使列表变异甚至检查的效果是不确定的。 Python的C实现使列表在整个持续时间内显示为空,并在可以检测到列表在排序过程中发生突变的情况下引发ValueError。




                               
登录/注册后可看大图



官方文档甩给你,配合楼上的例子理解就行。】、

希望对你有所帮助
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-17 19:02:47 | 显示全部楼层
本帖最后由 qiuyouzhi 于 2020-2-17 19:05 编辑

从小到大:
sort(reverse=True)
原理:
(差不多是这样的)
写两个for循环嵌套,然后把要判断的东西放进列表里,如果列表的i项大于列表的j项就交换
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-2-17 19:05:27 | 显示全部楼层
>>> l = [1, 3, 4, 2]
>>> l.sort()    # 从小到大排
>>> l
[1, 2, 3, 4]
>>> l.sort(reverse=True)     # 从大到小排
>>> l
[4, 3, 2, 1]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-2-17 19:32:56 | 显示全部楼层    本楼为最佳答案   
sort(*,key = None,reverse = False)
此方法仅使用<项目之间的比较来对列表进行排序。异常不会被抑制-如果任何比较操作失败,则整个排序操作都会失败(并且列表很可能会处于部分修改的状态)。

sort()接受两个只能通过关键字传递的参数(仅关键字参数):

key指定一个参数的功能,该参数用于从每个列表元素中提取比较键(例如,key = str.lower)。列表中与每个项目相对应的键仅计算一次,然后用于整个排序过程。默认值“无”表示列表项直接排序而无需计算单独的键值。

functools.cmp_to_key()实用程序可用于将2.x样式cmp函数转换为键函数。

reverse是一个布尔值。如果设置为True,则对列表元素进行排序,就好像每个比较都被反转一样。

当对大序列进行排序时,此方法会修改序列以节省空间。为了提醒用户它具有副作用,它不会返回排序后的序列(使用sorted()显式请求一个新的排序后的列表实例)。

保证sort()方法是稳定的。如果可以保证不更改比较相等的元素的相对顺序,则排序是稳定的-这有助于多次通过排序(例如,按部门排序,然后按薪级排序)。

有关排序示例和简短的排序教程,请参阅排序方式。

CPython实现细节:在对列表进行排序时,尝试使列表变异甚至检查的效果是不确定的。 Python的C实现使列表在整个持续时间内显示为空,并在可以检测到列表在排序过程中发生突变的情况下引发ValueError。




                               
登录/注册后可看大图



官方文档甩给你,配合楼上的例子理解就行。】、

希望对你有所帮助
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 08:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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