6 回答
TA贡献1776条经验 获得超12个赞
james.sort()是直接在原来james上排序,执行后james已经排好序,但sort()函数返回None,print(james.sort())输出的是sort()的返回值,james.sort() ,print(james)才会打印排序好的james
sorted(james)是返回一个新的排序好的列表 ,原来的james没有变
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参数时,得到乱序结果
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] 是取排好序后的第一个元素
TA贡献1798条经验 获得超7个赞
首先,数字排序,字符串排序这里就不论述了;
其次,经试验验证,比较数据时,所有的数字均视为小于字符
eg.
>>> sorted(['a',8125,'812'])
[8125, '812', 'a']
>>>
TA贡献1877条经验 获得超6个赞
1,3,a 主要根据asc码排序,1和3属于int类型,a属于str类型,i的asc码在s前面,所以先排数字,然后1排在3前面没有什么疑问了吧。
添加回答
举报