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

请问一些关于Python中sort函数赋值的问题?

请问一些关于Python中sort函数赋值的问题?

慕侠2389804 2019-07-09 15:07:08
关于Python中sort函数赋值的问题
查看完整描述

6 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

james.sort()是直接在原来james上排序,执行后james已经排好序,但sort()函数返回None,print(james.sort())输出的是sort()的返回值,james.sort() ,print(james)才会打印排序好的james

sorted(james)是返回一个新的排序好的列表 ,原来的james没有变

查看完整回答
反对 回复 2019-07-13
?
沧海一幻觉

TA贡献1824条经验 获得超5个赞


c是一个list,list中的每一个元素都是一个tuple,如c[0]=(0,9), c[1]=(1,8)

key的作用是指定待排序list(此处即C)中的元素中用来作为排序依据的属性

上例中的key为匿名方法,分别以c[i][0], 和 c[i][1] 作为排序依据,所以有这个结果

cmp的作用是指定比较的标准,如升序,逆序等等

例2
L中的元素是tuple,cmp的作用是对L[i][1]和L[j][1],使用内置cmp方法比较大小,由于L[i][1]是int,因此最后按升序排列

你可以考虑这样一个例子, 有一个类Person, 有两个属性,Person.age, Person.gender

key的作用是可以指定按年龄还是按性别排序,cmp的作用是可以指定排序的标准(例如以年龄排序时升序还是降序,以性别排序时何种性别在前)

例3
randint的作用是随机生成指定范围的整数,由于此处范围是1到2,所以randint总是生成1或2
因此f随机返回-1和1

以f作为cmp参数时,得到乱序结果

查看完整回答
反对 回复 2019-07-13
?
至尊宝的传说

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

li.sort(cmp=None, key=None, reverse=False)
uMinNum = li[0]
li.sort(cmp=None, key=None, reverse=True)
uMaxNum = li[0]
-----------------------------------------
li是一个列表,用列表存储这些数据, 然后用列表的排序方法sort()。
li.sort(cmp=None, key=None, reverse=False)也可以写成li.sort(), 因为sort()函数的原形就是这样。默认的为是升序排序。
li.sort(cmp=None, key=None, reverse=True)修改sort()的reverse变量, 让sort()进行降序排序。
li[0] 是取排好序后的第一个元素



查看完整回答
反对 回复 2019-07-13
?
元芳怎么了

TA贡献1798条经验 获得超7个赞

首先,数字排序,字符串排序这里就不论述了;
其次,经试验验证,比较数据时,所有的数字均视为小于字符
eg.
>>> sorted(['a',8125,'812'])
[8125, '812', 'a']
>>>

查看完整回答
反对 回复 2019-07-13
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

1,3,a 主要根据asc码排序,1和3属于int类型,a属于str类型,i的asc码在s前面,所以先排数字,然后1排在3前面没有什么疑问了吧。

查看完整回答
反对 回复 2019-07-13
  • 6 回答
  • 0 关注
  • 851 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信