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的第一个参数是一个可迭代的对象,将这个可迭代的对象的每个元素作为参数传递给后面的函数,然后根据函数的返回值做排序