Python内置函数sorted()高级排序用法

可以结合Python内置函数sorted()从入门到精通来看一些稍微基础的排序用法。

>>> from operator import itemgetter

>>> gameresult = [['Bob', 95.0, 'A'],

                      ['Alan', 86.0, 'C'],

                              ['Mandy', 83.5, 'A'],

                      ['Rob', 89.3, 'E']]

#按子列表第3个元素进行升序排序

>>> sorted(gameresult, key=itemgetter(2)) 

[['Bob', 95.0, 'A'], ['Mandy', 83.5, 'A'], ['Alan', 86.0, 'C'], ['Rob', 89.3, 'E']]

#按第3个元素升序,然后按第1个升序

>>> sorted(gameresult, key=itemgetter(2, 0))

[['Bob', 95.0, 'A'], ['Mandy', 83.5, 'A'], ['Alan', 86.0, 'C'], ['Rob', 89.3, 'E']]

>>> sorted(gameresult, key=itemgetter(2, 0), reverse=True)

[['Rob', 89.3, 'E'], ['Alan', 86.0, 'C'], ['Mandy', 83.5, 'A'], ['Bob', 95.0, 'A']]

>>> gameresult = [{'name':'Bob', 'wins':10, 'losses':3, 'rating':75.0},

              {'name':'David', 'wins':3, 'losses':5, 'rating':57.0},

              {'name':'Carol', 'wins':4, 'losses':5, 'rating':57.0},

              {'name':'Patty', 'wins':9, 'losses':3, 'rating':72.8}]

#按’wins’升序,该值相同的按’name’升序排序

>>> sorted(gameresult, key=itemgetter('wins', 'name')) 

[{'wins': 3, 'rating': 57.0, 'name': 'David', 'losses': 5}, {'wins': 4, 'rating': 57.0, 'name': 'Carol', 'losses': 5}, {'wins': 9, 'rating': 72.8, 'name': 'Patty', 'losses': 3}, {'wins': 10, 'rating': 75.0, 'name': 'Bob', 'losses': 3}]

#以一个列表内容为依据,对另一个列表内容进行排序

>>> list1 = ["what", "I'm", "sorting", "by"]

>>> list2 = ["something", "else", "to", "sort"]

#把两个列表中的对应位置元素配对

>>> pairs = zip(list1, list2)

>>> [item[1] for item in sorted(pairs, key=lambda x:x[0], reverse=True)]

['something', 'to', 'sort', 'else']

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dongfuguo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值