list 的排序介绍

1、list 基础排序

In[2]:
aList = [4, 5, 1, 2, 12, 34, 56, 9 ,80]
aList.sort()     #默认按升序排列
print(aList)

Out[3]:
[1, 2, 4, 5, 9, 12, 34, 56, 80]

In[4]:
aList.sort(reverse=True) #按降序排列
print(aList)

Out[5]:
[80, 56, 34, 12, 9, 5, 4, 2, 1]

2、list 嵌套排序

# 方法1
In[1]:
def my_key1(x):
  return x % 10

def my_key2(x):
  return x[1]

aList.sort(key=my_key1)    #根据key函数,按照个位数进行升序排列
print(aList)

Out[2]:
[80, 1, 12, 2, 34, 4, 5, 56, 9]

In[3]:
aList = [(4, 'ab'), (56, 'c'), (1, 'bb'), (102,  'a')]
aList.sort(key = my_key2)     #按照每个元组的第2分量,即字符串排序
print(aList)

Out[4]:
[(102, 'a'), (4, 'ab'), (1, 'bb'), (56, 'c')]
# 方法2
In[1]:
import operator
target_list = [["A",3],["B",2],["C",1]]

# 默认从小到大排序,如果想从大到小排序,可:
# target_list.sort(key=operator.itemgetter(1), reverse=True)
target_list.sort(key=operator.itemgetter(1))
print(target_list)

Out[2]:
[['C', 1], ['B', 2], ['A', 3]]
# 方法3
1)按照元组的第一个值从小到大排序
2)如果第一个值相同, 则按照元组第2个值从大到小排序

In[1]:
a = [[2,3], [4,1], (2,8), (2,1), (3,4)]
b = sorted(a,key=lambda x: (x[0], -x[1]))
print(b)

Out[2]:
[(2, 8), [2, 3], (2, 1), (3, 4), [4, 1]]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值