Python2.7:sorted 与 sort 的使用及区别

#!/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]]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值