sorted
-
传入一个
Iterable对象I
和排序参数[key=..., reverse=.. ]
#命名关键字参数 -
{注意key参数可以传入一个
自定义函数f
} 等价于 对每一个I(i)
都先执行f
,再拿来排序1.普通数值型
L1 = [36,5,-12,9,-21]
L1 = sorted(L1)
print(L1,' ')
L1 = sorted(L1, key=abs)
print(L1,' ')
L1 = sorted(L1, key=abs, reverse=True)
print(L1, ' ')2.普通字符串
L2 = ['bob', 'about', 'Zoo', 'Credit'] #依据ASCI码
L2 = sorted(L2) #没有忽略大小写 A<a{就ASCI而言}
print(L2,' ')
L2 = sorted(L2, key=str.lower) #把所有str都lower或者upper,即忽略大小写
print(L2, ' ')
L2 = sorted(L2, key=str.upper, reverse=True)
print(L2, ' ')3作业:根据名字对T进行排序
L3 = [('Bob', 75),('Adam', 92),('Bart', 66),('Lisa', 88),('haoZhang',22)] #list里面嵌套tuple
def fn(t): #传入一个tuple
return t[0].lower() #返回名字的小写后的字符串
L3 = sorted(L3, key=fn)
print(L3,' ')
L3 = sorted(L3, key=fn, reverse=True)
print(L3, ' ')根据分数进行排序
def fn_score(t):
return t[1]
L3 = sorted(L3,key=fn_score,reverse=True)
print(L3,' ')