#!/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_list
print sorted(loan_list, key=lambda x : x['rank'])
print loan_list
student = [['tom', 'A', 20], ['jack', 'C', 18], ['andy', 'B', 11]]
student.sort(key=lambda x: x[2])
print student
student.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]]
Python2.7:sorted 与 sort 的使用及区别
最新推荐文章于 2024-06-07 11:42:57 发布