python如何将list排序
发布时间:2025-04-06 15:52:43
python为list排序提供了两种方法
1、使用list内建函数sort排序
list.sort(key=None,reverse=False)
eg:
In[57]:l=[27、47、3、42、19] 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=lambdax:x[1]) In[56]:L Out[56]:[('a',1),('c',3),('d',4),('b',6)]
以上段落,结合这个例子,我是这样理解的:匿名函数lambda x:x[1]相当于:
deff(x): returnx[1]
key参数接受列表L中每个元素的第二个参数,并根据第二个参数的排名确定整体排名。换句话说,在设置了key参数后,key接收的值代表了整体,排名标准变成了对key接收的值的排名。
2、使用python内置函数sorted排序
sorted方法与sort方法非常相似。不同的是,sorted不会改变原始列表,而是会返回一个有序列表。列表.sort()改变了原来的列表。还有,list.sort()只能对列表进行排序,而sorted()可以对其他数据结构进行排序。
In[62]:l=[27、47、3、42、19] 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=lambdax:x['score']) Out[69]:[{'name':'Ivy','score':80},{'name':'Abbie','score':99}]
下一篇 python中怎么遍历字典