Python list内置sort()方法用来排序,也可以用python内置的全局sorted()方法来对可迭代的序列排序生成新的序列
1.使用sort排序
my_list = [3, 5, 1, 4, 2] my_list.sort() print (my_list) #输出: [1, 2, 3, 4, 5]
使用sort()方法对list排序会修改list本身,不会返回新list,通常此方法不如sorted()方便,但是如果你不需要保留原来的list,sort()方法将更有效。
sort()不能对dict字典进行排序
2.使用sorted()排序,
my_list = [3, 5, 1, 4, 2] result = sorted(my_list) print (result) #输出: [1, 2, 3, 4, 5]
sorted()有返回值
my_dict = {"a":"1", "c":"3", "b":"2"} result = sorted(my_dict) print (result) #输出: [‘a‘, ‘b‘, ‘c‘]
对dict排序默认会按照dict的key值进行排序,最后返回的结果是一个对key值排序好的list
二,key参数
列表中包含元组,通过元组中某个元素进行排序;lambda x:x[元素位置]
# 列表中包含元组,通过元组中某个元素进行排序;lambda x:x[元素位置] stu=[("winnie","A",12),("lucy","C",16),("john","B",14)] stu.sort(key=lambda x:x[2]) print(stu) s=sorted(stu,key=lambda x:x[1],reverse=True) #默认false ,升序 print(s) #结果 #[(‘winnie‘, ‘A‘, 12), (‘john‘, ‘B‘, 14), (‘lucy‘, ‘C‘, 16)] #[(‘lucy‘, ‘C‘, 16), (‘john‘, ‘B‘, 14), (‘winnie‘, ‘A‘, 12)]
列表中包含字典,按照字典中某个key值进行排序 lambda x:x[key值]
# 列表中包含字典,按照字典中某个key值进行排序 lambda x:x[key值] l1=[{‘name0‘:‘李丽‘,‘age‘:40}, {‘name0‘:‘张那‘,‘age‘:30},{‘name0‘:‘王原‘,‘age‘:50},{‘name0‘:‘王丽萍‘,‘age‘:50}] l2=sorted(l1,key=lambda x:x[‘age‘]) print(l2) # 结果: # [{‘name0‘: ‘张那‘, ‘age‘: 30}, {‘name0‘: ‘李丽‘, ‘age‘: 40}, {‘name0‘: ‘王原‘, ‘age‘: 50}, {‘name0‘: ‘王丽萍‘, ‘age‘: 50}]
原文:https://www.cnblogs.com/a-ant/p/11032559.html