python怎么将list从小到大排列?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
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]
上面这种是直接对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}]
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。