【python学习笔记】Python中排序sorted()和list.sort()

说明

sorted 和list.sort 都接受key, reverse定制。但是区别是。list.sort()是列表中的方法,只能用于列表。而sorted可以用于任何可迭代的对象。list.sort()是在原序列上进行修改,不会产生新的序列。所以如果你不需要旧的序列,可以选择list.sort()。 sorted() 会返回一个新的序列。旧的对象依然存在。

sort是容器的函数:sort(cmp=None, key=None, reverse=False)

sorted是python的内建函数:sorted(iterable, cmp=None, key=None, reverse=False)

参数解析:

  • cmp(Python3取消此参数):比较函数,比较什么参数由key决定。例如:cmp(e1, e2) 是具有两个参数的比较函数,返回值:负数(e1 < e2);0(e1 == e2);正数( e1 > e2)。
  • key:用列表元素的某个属性或函数作为关键字
  • reverse:排序规则,reverse=False为升序排序;reverse=True为降序排序
  • sorted多一个参数iterable:待排序的可迭代类型的容器

排序使用

基本排序

L = [5, 2, 3, 1, 4]
L.sort()
print L
>>> [1, 2, 3, 4, 5]

print sorted([5, 2, 3, 1, 4])
>>> [1, 2, 3, 4, 5]

根据参数key排序

L = [('b',2),('a',1),('c',3),('d',4)]
print sorted(L, key=lambda x:x[1]))
>>> [('a', 1), ('b', 2), ('c', 3), ('d', 4)]

根据参数reverse排序

a=[1,2,5,3,9,4,6,8,7,0,12]
a.sort(reverse=False)
print a
>>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12]

基于cmp函数排序

L = [('a', 90), ('b',90), ('e',80),('c',95)]
a = sorted(L, cmp=lambda x, y: cmp(x[0], y[0]))
print a
>>> [('e', 80), ('a', 90), ('b', 90), ('c', 95)]

leason | 个人博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

leason00

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值