python排序操作
2015-08-26 18:23
507 查看
# -*- coding: utf-8 -*- l = [('a', 10, 30), ('c', 8, 20), ('b', 17, 15)] m = [{1:5, 3:4}, {1:3, 6:3}, {1:1, 2:4, 5:6}, {1:9}] k = [{1:5, 3:4}, {1:3, 6:3}, {1:1, 2:4, 5:6}, {1:9}] j = [('a', 10, 30), ('c', 8, 20), ('b', 17, 15)] def f1(a, b): return a[1]-b[1] def f2(a): return len(a) if __name__ == '__main__': ## 本地排序,不返回副本 l.sort(cmp=f1) print l m.sort(key=f2) # 返回副本,原始输入不变 print m k.sort(cmp=None, key=f2, reverse=True) print k ## 返回副本,原始输入不变 print sorted(j, key=lambda x:x[0]) print sorted(j, key=lambda x:x[1]) print sorted(j, key=lambda x:x[2]) print sorted(j, cmp=lambda x, y: cmp(x[0], y[0])) print sorted(j, cmp=lambda x, y: cmp(x[1], y[1])) print sorted(j, cmp=lambda x, y: cmp(x[2], y[2])) ## 用operator加快排序速度 from operator import itemgetter, attrgetter print sorted(j, key=itemgetter(2)) ## 用operator函数进行多级排序 print sorted(j, key=itemgetter(1, 2)) ## 对字典排序,返回由tuple组成的list,不再是字典 d = {'data1':3, 'data2':1, 'data3':2, 'data4':4} print sorted(d.iteritems(), key=itemgetter(1), reverse=True)
输出:
pydev debugger: starting (pid: 9052)
[('c', 8, 20), ('a', 10, 30), ('b', 17, 15)]
[{1: 9}, {1: 5, 3: 4}, {1: 3, 6: 3}, {1: 1, 2: 4, 5: 6}]
[{1: 1, 2: 4, 5: 6}, {1: 5, 3: 4}, {1: 3, 6: 3}, {1: 9}]
[('a', 10, 30), ('b', 17, 15), ('c', 8, 20)]
[('c', 8, 20), ('a', 10, 30), ('b', 17, 15)]
[('b', 17, 15), ('c', 8, 20), ('a', 10, 30)]
[('a', 10, 30), ('b', 17, 15), ('c', 8, 20)]
[('c', 8, 20), ('a', 10, 30), ('b', 17, 15)]
[('b', 17, 15), ('c', 8, 20), ('a', 10, 30)]
[('b', 17, 15), ('c', 8, 20), ('a', 10, 30)]
[('c', 8, 20), ('a', 10, 30), ('b', 17, 15)]
[('data4', 4), ('data1', 3), ('data3', 2), ('data2', 1)]
参考:http://blog.163.com/zhuandi_h/blog/static/1802702882012111284632184/?COLLCC=3141421676&COLLCC=3301807197&COLLCC=3141421676&COLLCC=3301807197&
相关文章推荐
- 利用Python PIL、cPickle将图片读取和保存为pkl格式文件
- 使用Python进行多进程编程
- python dist-packages 和 site-packages
- 使用python脚本生成随机密码
- Python RE模块
- Python局部变量和全局变量global
- Python中小中花括号的区别
- Python中if __name__ == "__main__":用法解析
- Python文件操作方法
- Python的参数模块OptionParser说明
- python generator 的惰性计算
- Python报错:SyntaxError: Non-ASCII character '\xe5' in file
- Python算术运算符
- Python os常用模块
- python 实例方法,类方法,静态方法
- torshammer
- [python] UDP客户端/服务器端
- python email mime使用
- python 闭包 装饰器
- python super用法