l = [-1,3,-20,3,45,2]
print(sorted(l))
# [-20, -1, 2, 3, 3, 45]
print(sorted(l,key=abs))
# [-1, 2, 3, 3, -20, 45]
#
u = ['Credit', 'Zoo', 'about', 'bob']
print(sorted(u))
# ['Credit', 'Zoo', 'about', 'bob']
#
print(sorted(u,key=str.lower,reverse=True))
# ['Zoo', 'Credit', 'bob', 'about']
print(sorted(u,key=str.lower,reverse=False))
# ['about', 'bob', 'Credit', 'Zoo']
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
def by_name(t):
return t[0]
print(sorted(L,key=by_name))
# [('Adam', 92), ('Bart', 66), ('Bob', 75), ('Lisa', 88)]
# 按照名字排序
#
#
def by_score(s):
return s[1]
print(sorted(L,key=by_score,reverse=True))
# [('Adam', 92), ('Lisa', 88), ('Bob', 75), ('Bart', 66)]
# 按照分数排序
按照字典的v值进行排序
d = {"name1":64,"name2":34,"name3":56}
def test(items):
print(items)
return items[1]
r = sorted(d.items(),key=test)
print(r)
结果如下
('name1', 64)
('name2', 34)
('name3', 56)
[('name2', 34), ('name3', 56), ('name1', 64)]
sorted内置方法中的key的参数可以这样理解
这里可以这样想,sorted的第一个参数是一个可迭代的对象,将这个可迭代的对象的每个元素作为参数传递给后面的函数,然后根据函数的返回值做排序