去重(均保持了原来的顺序)
①
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]))
若第一列升序,第二列降序,则
l=[ [1,2,3],a.sort(key=lambda x: (x[0], -x[1]))
[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)))
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)]