Python:sorted 与 sort 的使用及区别

来源:互联网 发布:linux 即时通讯 编辑:程序博客网 时间:2024/06/06 02:47
#!/usr/bin/env python# -*- coding: utf-8 -*-############################################################# sorted 与 sort 区别## sorted():用于任意的可迭代对象,例如字符串,元组,列表,字典等。# sorted(iterable, cmp=None, key=None, reverse=False)#       iterable 参数:指可以迭代的对象;#       cmp 参数:指比较函数,通常为lambda 函数;#       key 参数:指用于比较的关键字,通常为lambda 函数;#       reverse 参数:指排序结果是否反转。#   该函数返回一个排序后的列表,原有可迭代对象保持不变## sort():只适用于列表# L.sort(cmp=None, key=None, reverse=False)#       cmp 参数:指比较函数,通常为lambda 函数;#       key 参数:指用于比较的关键字,通常为lambda 函数;#       reverse 参数:指排序结果是否反转。## cmp 在排序过程中多次调用,所以函数调用开销较大,使用key效率较高############################################################E = {'1': 'a', '2': 'b', '0': 'c'}print sorted(E)print sorted(E.items())loan_list = [    {"handler": 'ZY', 'rank': 2},    {"handler": 'YAM', 'rank': 1},    {"handler": 'HC', 'rank': 3},]print loan_listprint sorted(loan_list, key=lambda x : x['rank'])print loan_liststudent = [['tom', 'A', 20], ['jack', 'C', 18], ['andy', 'B', 11]]student.sort(key=lambda x: x[2])print studentstudent.sort(cmp=lambda x, y: x[2]-y[2])print student# 运行结果:# ['0', '1', '2']# [('0', 'c'), ('1', 'a'), ('2', 'b')]# [{'handler': 'ZY', 'rank': 2}, {'handler': 'YAM', 'rank': 1}, {'handler': 'HC', 'rank': 3}]# [{'handler': 'YAM', 'rank': 1}, {'handler': 'ZY', 'rank': 2}, {'handler': 'HC', 'rank': 3}]# [{'handler': 'ZY', 'rank': 2}, {'handler': 'YAM', 'rank': 1}, {'handler': 'HC', 'rank': 3}]# [['andy', 'B', 11], ['jack', 'C', 18], ['tom', 'A', 20]]# [['andy', 'B', 11], ['jack', 'C', 18], ['tom', 'A', 20]]