python 列表去重及sort用法

去重(均保持了原来的顺序)

orgList = [1,5]

formatList = list(set(orgList))

formatList.sort(key=orgList.index)

print (formatList)

Sort    

默认reverse=False  升序

x = ['mmm', 'mm', 'mm', 'm' ]
x.sort(key = len)
>>['m', 'mm', 'mm', 'mmm']

d =['CCC', 'bb', 'ffff', 'z'] 
>>> sorted(d,key = str.lower )    #将列表中的每个元素变为小写,再按每个元素中的每个字母的ascii码从小到大排序 
['bb', 'CCC', 'ffff', 'z'] 

③双重列表/元组


L = [(12, 12), (34, 13), (32, 15), (12, 24), (32, 64), (32, 11)]

若希望按照第一列排序,则

a.sort(key=lambda x: (x[0]))

可设置reverse=True则按照第一列降序排序

若希望首先按照第一列排,第一列相同的情况下,按照第二列排,均是升序的方式,则

a.sort(key=lambda x: (x[0], x[1]))

若第一列升序,第二列降序,则

a.sort(key=lambda x: (x[0], -x[1]))
l=[ [1,2,3],
   [2,2,1]]
a=sorted(l, key = lambda x:(x[2]))    #按照第三个数字大小排序
>>>[[2, 2, 1], [1, 2, 3]]                                                                                                      转载于: python多重排序_Jum_Summer的博客-CSDN博客_python 多重排序
④字典:
f=[{'age': 20, 'name': 'abc'}, {'age': 25, 'name': 'ghi'}, {'age': 30, 'name': 'def'}] 
 
f2 = sorted(f,key = lambda x:x['age']) 

>>>  [{'age': 20, 'name': 'abc'}, {'age': 25, 'name': 'ghi'}, {'age': 30, 'name': 'def'}]

operator.itemgetter函数
转载于:Python中的sort()方法使用基础 - 路永远在脚下 - 博客园


from operator import itemgetter
 
alist = [(2,3,10), (1,2,3), (5,6,7), (2,5,10), (2,4,10)]
 
# 多级排序,先按照第3个元素排序,然后按照第2个元素排序:
(在第3个元素相同情况下再以第2个元素排序)
print (sorted(alist,key = itemgetter(2,1)))

print sorted(alist, key = lambda x:(int(x[2]),int(x[1]))

>>>[(1, 2, 3), (5, 6, 7), (2, 3, 10), (2, 4, 10), (2, 5, 10)]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值