python如何将list排序

2025-12-01 0 53,696

python提供了对list排序的两种方法

1、使用list内建函数sort排序

list.sort(key=None,reverse=False)

eg:

In [57]: l=[27,47,3,42,19,9]
In [58]: l.sort()
In [59]: l
Out[59]: [3, 9, 19, 27, 42, 47]

相关推荐:《Python入门教程》

上面这种是直接对l列表里面的元素排序,sort()函数还提供了一个key参数,这个参数的值是一个函数,这个函数只能有一个返回值,且返回值用来进行比较。 这个技术是快速的因为key指定的函数将准确地对每个元素调用。

In [53]: L = [('b',6),('a',1),('c',3),('d',4)]
In [54]: L.sort(key=lambda x:x[1])
In [56]: L
Out[56]: [('a', 1), ('c', 3), ('d', 4), ('b', 6)]

上面那段话,再结合这个例子,我是这样理解的:匿名函数lambda x:x[1]相当于:

def f(x):
    return x[1]

key参数接受列表L里的每个元素的第二个参数,根据第二个参数的排序,确定整体的排序。也就是说,设置了key参数后,key接收的值代表了整体,排序的标准就变成了对key所接收的值进行排序。

2、使用python内置函数sorted排序

sorted方法和sort方法很相似,不同的是,sorted不改变原来的列表,并返回一个排好序的列表。而list.sort()是改变了原有的列表。还有就是,list.sort()只能对列表排序,而sorted()可以对其他数据结构排序。

In [62]: l=[27,47,3,42,19,9]
In [63]: sorted(l)
Out[63]: [3, 9, 19, 27, 42, 47]

sorted方法同样可以用key参数,用法也是一样的。

In [68]: data=[{'name':'Abbie','score':99},{'name':'Ivy','score':80}]
In [69]: sorted(data,key=lambda x:x['score'])
Out[69]: [{'name': 'Ivy', 'score': 80}, {'name': 'Abbie', 'score': 99}]

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:以上部本文内容由互联网用户自发贡献,本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。投诉邮箱:3758217903@qq.com

ZhiUp资源网 python基础 python如何将list排序 https://www.zhiup.top/5107.html

相关