python sorted用法
来源:互联网 发布:单片机输入的是什么 编辑:程序博客网 时间:2024/06/05 23:29
sorted()函数功能非常强大,使用它可以方便地针对不同的数据结构进行排序,从而满足不同需求。来看下列例子。
·对字典进行排序:下面的例子中根据字典的值进行排序,即将phonebook对应的电话号码按照数字大小进行排序。
>>> phonebook = {'Linda': '7750', 'Bob': '9345', 'Carol': '5834'}
>>> from operator import itemgetter
>>> sorted_pb = sorted(phonebook.iteritems(),key=itemgetter(1))
>>> print sorted_pb
[('Carol', '5834'), ('Linda', '7750'), ('Bob', '9345')]
>>>
·多维list排序:实际情况下也会碰到需要对多个字段进行排序的情况,如根据学生的成绩、对应的等级依次排序。当然这在DB里面用SQL语句很容易做到,但使用多维列表联合sorted()函数也可以轻易达到类似的效果。
>>> from operator import itemgetter
>>> gameresult = [['Bob',95.00,'A'],['Alan',86.0,'C'],['Mandy',82.5,'A'],['Rob',
86,'E']] #
分别表示学生的姓名,成绩,等级
>>> sorted(gameresult , key=operator.itemgetter(2, 1))
[['Mandy', 82.5, 'A'], ['Bob', 95.0, 'A'], ['Alan', 86.0, 'C'], ['Rob', 86,
'E'] #
当第二个字段成绩相同的时候按照等级从低到高排序
]
·字典中混合list排序:如果字典中的key或者值为列表,需要对列表中的某一个位置的元素排序也是可以做到的。下面的例子中针对字典mydict的value结构[n,m]中的n按照从小到大的顺序排列。
>>> mydict = { 'Li': ['M',7],
... 'Zhang': ['E',2],
... 'Wang': ['P',3],
... 'Du': ['C',2],
... 'Ma': ['C',9],
... 'Zhe': ['H',7] }
>>>
>>> from operator import itemgetter
>>> sorted(mydict.iteritems(), key=lambda (k,v): operator.itemgetter(1)(v))
[('Zhang', ['E', 2]), ('Du', ['C', 2]), ('Wang', ['P', 3]), ('Li', ['M', 7]), ('
Zhe', ['H', 7]), ('Ma', ['C', 9])]
·List中混合字典排序:如果列表中的每一个元素为字典形式,需要针对字典的多个key值进行排序也不难实现。下面的例子是针对list中的字典元素按照rating和name进行排序的实现方法。
>>> gameresult = [{ "name":"Bob", "wins":10, "losses":3, "rating":75.00 },
... { "name":"David", "wins":3, "losses":5, "rating":57.00 },
... { "name":"Carol", "wins":4, "losses":5, "rating":57.00 },
... { "name":"Patty", "wins":9, "losses":3, "rating": 71.48 }]
>>> from operator import itemgetter
>>> sorted(gameresult , key=operator.itemgetter("rating","name"))
[{'wins': 4, 'losses': 5, 'name': 'Carol', 'rating': 57.0}, {'wins': 3, 'losses'
: 5, 'name': 'David', 'rating': 57.0}, {'wins': 9, 'losses': 3, 'name': 'Patty',
'rating': 71.48}, {'wins': 10, 'losses': 3, 'name': 'Bob', 'rating': 75.0}]
>>>
·对字典进行排序:下面的例子中根据字典的值进行排序,即将phonebook对应的电话号码按照数字大小进行排序。
>>> phonebook = {'Linda': '7750', 'Bob': '9345', 'Carol': '5834'}
>>> from operator import itemgetter
>>> sorted_pb = sorted(phonebook.iteritems(),key=itemgetter(1))
>>> print sorted_pb
[('Carol', '5834'), ('Linda', '7750'), ('Bob', '9345')]
>>>
·多维list排序:实际情况下也会碰到需要对多个字段进行排序的情况,如根据学生的成绩、对应的等级依次排序。当然这在DB里面用SQL语句很容易做到,但使用多维列表联合sorted()函数也可以轻易达到类似的效果。
>>> from operator import itemgetter
>>> gameresult = [['Bob',95.00,'A'],['Alan',86.0,'C'],['Mandy',82.5,'A'],['Rob',
86,'E']] #
分别表示学生的姓名,成绩,等级
>>> sorted(gameresult , key=operator.itemgetter(2, 1))
[['Mandy', 82.5, 'A'], ['Bob', 95.0, 'A'], ['Alan', 86.0, 'C'], ['Rob', 86,
'E'] #
当第二个字段成绩相同的时候按照等级从低到高排序
]
·字典中混合list排序:如果字典中的key或者值为列表,需要对列表中的某一个位置的元素排序也是可以做到的。下面的例子中针对字典mydict的value结构[n,m]中的n按照从小到大的顺序排列。
>>> mydict = { 'Li': ['M',7],
... 'Zhang': ['E',2],
... 'Wang': ['P',3],
... 'Du': ['C',2],
... 'Ma': ['C',9],
... 'Zhe': ['H',7] }
>>>
>>> from operator import itemgetter
>>> sorted(mydict.iteritems(), key=lambda (k,v): operator.itemgetter(1)(v))
[('Zhang', ['E', 2]), ('Du', ['C', 2]), ('Wang', ['P', 3]), ('Li', ['M', 7]), ('
Zhe', ['H', 7]), ('Ma', ['C', 9])]
·List中混合字典排序:如果列表中的每一个元素为字典形式,需要针对字典的多个key值进行排序也不难实现。下面的例子是针对list中的字典元素按照rating和name进行排序的实现方法。
>>> gameresult = [{ "name":"Bob", "wins":10, "losses":3, "rating":75.00 },
... { "name":"David", "wins":3, "losses":5, "rating":57.00 },
... { "name":"Carol", "wins":4, "losses":5, "rating":57.00 },
... { "name":"Patty", "wins":9, "losses":3, "rating": 71.48 }]
>>> from operator import itemgetter
>>> sorted(gameresult , key=operator.itemgetter("rating","name"))
[{'wins': 4, 'losses': 5, 'name': 'Carol', 'rating': 57.0}, {'wins': 3, 'losses'
: 5, 'name': 'David', 'rating': 57.0}, {'wins': 9, 'losses': 3, 'name': 'Patty',
'rating': 71.48}, {'wins': 10, 'losses': 3, 'name': 'Bob', 'rating': 75.0}]
>>>
0 0
- python sorted用法
- python sorted()用法详解
- python sorted用法
- python的sorted用法
- Python sorted()的用法
- python sorted()函数用法
- python sorted排序用法详解
- python sorted排序用法详解
- Python 中 sorted 的用法
- python sort、sorted 高级用法
- python内置函数sorted排序用法
- python内置函数sorted排序用法
- python内置函数sorted排序用法
- Python: sort,sorted,OrderedDict的用法
- Python中sorted()方法的用法
- Python中sorted()方法的用法
- Python中sorted()方法的用法
- Python: sort,sorted,OrderedDict的用法
- [Erlang危机](3.4)习题
- 随便几句话而已
- 使用Spring的ReloadableResourceBundleMessageSource读取properties配置
- C++的MFC 与 HTML 双向通讯 --[已解决]
- 包和访问权限(二)
- python sorted用法
- ZMQ——多线程通信(过程)
- Pascal's Triangle
- Struts2.3.16.1+Hibernate4.2.4+Spring4.0.2注解整合
- Gulp的目标是取代Grunt
- 使用的开源控件解决问题
- cocos2d html5 简易点餐客户端
- C++编程思想第二章课后练习
- POJ 1380 Equipment Box(判断一个长方形能不能包含另一个长方形)