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'] >>>