永发信息网

python怎么使用sort

答案:1  悬赏:20  手机版
解决时间 2021-01-22 20:34
python怎么使用sort
最佳答案
Python中的sort()方法用于数组排序,本文以实例形式对此加以详细说明:
一、基本形式
列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不可修改的。

x = [4, 6, 2, 1, 7, 9]
x.sort()
print x # [1, 2, 4, 6, 7, 9]

如果需要一个排序好的副本,同时保持原有列表不变,怎么实现呢

x =[4, 6, 2, 1, 7, 9]
y = x[ : ]
y.sort()
print y #[1, 2, 4, 6, 7, 9]
print x #[4, 6, 2, 1, 7, 9]

注意:y = x[:] 通过分片操作将列表x的元素全部拷贝给y,如果简单的把x赋值给y:y = x,y和x还是指向同一个列表,并没有产生新的副本。
另一种获取已排序的列表副本的方法是使用sorted函数:

x =[4, 6, 2, 1, 7, 9]
y = sorted(x)
print y #[1, 2, 4, 6, 7, 9]
print x #[4, 6, 2, 1, 7, 9]

sorted返回一个有序的副本,并且类型总是列表,如下:

print sorted('Python') #['P', 'h', 'n', 'o', 't', 'y']

二、自定义比较函数
可以定义自己的比较函数,然后通过参数传递给sort方法:

def comp(x, y):
if x < y:
return 1
elif x > y:
return -1
else:
return 0

nums = [3, 2, 8 ,0 , 1]
nums.sort(comp)
print nums # 降序排序[8, 3, 2, 1, 0]
nums.sort(cmp) # 调用内建函数cmp ,升序排序
print nums # 降序排序[0, 1, 2, 3, 8]

三、可选参数
sort方法还有两个可选参数:key和reverse

1、key在使用时必须提供一个排序过程总调用的函数:

x = ['mmm', 'mm', 'mm', 'm' ]
x.sort(key = len)
print x # ['m', 'mm', 'mm', 'mmm']

2、reverse实现降序排序,需要提供一个布尔值:

y = [3, 2, 8 ,0 , 1]
y.sort(reverse = True)
print y #[8, 3, 2, 1, 0]

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索python , 方法 sort python sort方法、python魔术方法详解、python实例方法详解、list.sort 使用方法、c list.sort 使用方法,以便于您获取更多的相关知识。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
蓉兴干洗店地址在什么地方,我要处理点事!
沤熟人尿是什么意思
华中科技大学医学院最好专业是什么啊
单选题中新网载文指出,双方经贸合作带动了两
唐家洗衣店地址在哪,我要去那里办事,
收音机怎么连接电脑谁知道
兰州供暖分户计量的供水温度是多少度?
把长7分米、宽6分米、高3分米的长方体切成两
我准备提取公积金偿还商贷,请问我现在每月还
伊莱洁新干洗(江油店)地址好找么,我有些事要
Quarrels often between the wife and husba
德奈福洗衣(江油店)地址在什么地方,想过去办
焊接界最出名的人物?
Dear Mom and Dad ,I'm afraid I have some v
泰洁干洗(渝州路)地址有知道的么?有点事想过
推荐资讯
为什么要用盐水
二维码防伪码能造假吗,
穆勒国籍是属于哪里?
墨产芬达电吉他怎么样??垃圾吗
我是瘦子 冬季双手冰冷,碰到冷水会刺骨地疼
是的,我们的命运被安排定了,在这个充满车辆
单选题解决好心理矛盾,消除心理烦恼,就要不
曹四开锁地址在什么地方,我要处理点事!
168茶楼地址在哪,我要去那里办事,
聚友茶楼地址有知道的么?有点事想过去!
在众多电脑管家中哪个最好用(for widows Xp
单选题动物运动的方式多种多样,动物运动所消
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?