list的排序用法

list排序有两个函数sort()和sorted()函数:

sort()函数:排序会改变原列表元素的排列;

sorted()函数:不会改变原列表元素的位置,而是重新生成一个副本。

练习题:对电视剧按照收视率排序

1.电视剧和收视率作为一个元组,存放在一个列表中

2.使用sorted函数根据收视率排序,key:表示指定从每个元素中提取一个用于比较的键,reverse:True是降序,False是升序(默认)。

#根据收视率对电视剧进行排序
tv_list=[('tv1',1.4),('tv2',1.34),('tv3',0.92),
         ('tv4',1.86),('tv5',0.5),('tv6',0.66),('tv7',0.89)]
print sorted(tv_list,key=lambda tv: tv[1],reverse=True)
#结果
[('tv4', 1.86), ('tv1', 1.4), ('tv2', 1.34), ('tv3', 0.92), ('tv7', 0.89), ('tv6', 0.66), ('tv5', 0.5)]
>>> 

 引申:如果是字典按照value排序

>>> d
{'a': 10, 'c': 23, 'b': 34, 'e': 3, 'd': 1, 'f': 1, 'h': 3}
>>> sorted(d,key=lambda item:d[item])
['d', 'f', 'e', 'h', 'a', 'c', 'b']
>>> 
原文地址:https://www.cnblogs.com/josie-xu/p/10450665.html