# sort()方法语法:
# list.sort(cmp=None, key=None, reverse=False)
# 参数:
# cmp -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。
# key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
# reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。
# sort返回值:
# 该方法没有返回值,但是会对列表的对象进行排序。
def list_sort_test():
a_list = ["how", 'produce', 'system_info']
a_list.sort()
print("List : ", a_list)
pass
# 自定义cmp参数:
# 代码示意:
# import functools
#
# from functools import cmp_to_key
#
# def custom_sort(x, y):
# return y[1]-x[1]
#
# # 调用cmp排序
# d.sort(key=cmp_to_key(custom_sort))
def list_sort_cmp_test():
def custom_sort(x, y):
return y[1] - x[1]
a = [(1,2), (2,3),(3,4)]
from functools import cmp_to_key
a.sort(key=cmp_to_key(custom_sort))
print(a)
# 也可以使用sorted方法:
# sorted方法和sort方法很相似,不同的是,sorted不改变原来的列表,并返回一个排好序的列表
def sorted_test():
a = [5, 2, 9, 8, 6]
a = sorted(a)
print(a)
# 倒序排序为从大到小排序,使用reverse=True
a = [5, 2, 9, 8, 6]
a = sorted(a, reverse=True)
print(a)
# lambda指定key
a = [('x', 0.56), ('a', 1.28), ('c', 2.36), ('s', 5.02), ('h', 20)]
a = sorted(a, key=lambda x: x[0])
print(a)
def reverse_test():
a = [('x', 0.56), ('a', 1.28), ('c', 2.36), ('s', 5.02), ('h', 20)]
a.reverse()
print(a)
def list_sort_test2():
# 获取列表的第二个元素
def take_second(elem):
return elem[1]
# 列表
random = [(2, 2), (3, 4), (4, 1), (1, 3)]
# 指定第二个元素排序
random.sort(key=take_second)
# 输出类别
print('排序列表:', random)
if __name__ == '__main__':
print('PyCharm')