sorted

1.默认情况下 sorted函数奖励别升序排序, 注意,返回一个新列表对象,原来的列表保持不变

nums = [4,5,2,1,3,1,]
s = sorted(nums)
print(s)

2.如果想要降序排序,需要制定参数,reverse=True ,注意这里原来的函数保持不变

nums = [2,3,6,8,9,1,0]
s = sorted(nums, reverse=True)

3.如果想要按照某个规则排序,则需要制定参数key,可以是一个函数对象,例如字符串构成的列表,需求如果按照字符串的长度来排序
len 是内建函数,sorted 函数在排序的时候会用len去获取每个字符串的长度来排序。 这里使用匿名函数 key=lambda x: len(x) ,多此一举。

varchar = ["Nihao","Dajiahao","Tianqibucuo","Jintian","is","jiyamin"]
# 升序排序, 生成新的列表
a = sorted(chars, key=len)
#降序排序 ,生成新的列表
b = sorted(chars, key=len, reverse=True)

4.如果是一个复合列表结构,例如由元祖构成的列表,要按照元祖中的第二个元素排序,那么可以用,lambda定义一个匿名函数

students = [("zhangsan","B"),("lisi","C"),("wangwu","D")]
a = sorted(students,key=lambda x:x[1],reverse=True) #降序
b = sorted(students, key=lambda x:x[1]) #升序

5.对于集合构成的列表,有一种更高效的方法指定这个key

students = [("zhangsan","B"),("lisi","C"),("wangwu","D")]
from operator import itemgetter
a = sorted(students,key=itemgetter(1),reverse=True) #降序排序, 生成新列表
print(a) 
print(students)

你可能感兴趣的:(sorted)