(二十二)python 3 sort()与sorted()

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