python 排序之sort

#coding:utf-8

#求列表的第二大值
list_test =[6,2,4,6,1,2,3,4,5] 
list_test.sort()
print list_test[-2]
"""6"""

help(list_test.sort)
"""Help on built-in function sort:

sort(...)
    L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*;
    cmp(x, y) -> -1, 0, 1"""


#numbers逆序,出现在group中放到前面
numbers = [8,3,1,2,5,4,7,6]
group = [6,3,4,7]

def sort_priority(values, group):
    """给values进行逆序,若出在grop组,放在前面"""
    def helper(x):
        if x in group:
            return (0, x)
        return (1, x)
    values.sort(key=helper, reverse=True)

sort_priority(numbers, group)
print numbers
"""[8, 5, 2, 1, 7, 6, 4, 3]"""



#按字典中的年龄升序排
dict_test =[{"name":"shihongguang","age":70},{"name":"shihongbo","age":20},{"name":"maodongjiao","age":26}]

def sort_dict(values):
    """按字典中的年龄进行排序"""
    def helper(x):
        return(x["age"],x)
    values.sort(key=helper)

sort_dict(dict_test)
print dict_test
"""[{'age': 20, 'name': 'shihongbo'}, {'age': 26, 'name': 'maodongjiao'}, {'age': 70, 'name': 'shihongguang'}]"""
原文地址:https://www.cnblogs.com/by2016/p/6826741.html