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

 

posted on 2019-04-28 10:16  bainianminguo  阅读(377)  评论(0)    收藏  举报