python 多列排序_python sorted多列排序
sorted
可以對所有可迭代的對象進行排序操作
也就是說,任意元組、列表、字典互相嵌套的結構都可以用sorted進行排序
sorted 語法
sorted(iterable[, cmp[, key[, reverse]]])
參數
說明
iterable
可迭代對象, 任意元組、列表、字典嵌套
cmp
比較的函數,它具有兩個參數,參數的值都是從可迭代對象中取出,此函數必須遵守的規則為,大于則返回1,小于則返回-1,等于則返回0
key
主要是用來進行比較的元素,只有一個參數,具體的函數的參數就是取自于可迭代對象中,指定可迭代對象中的一個元素來進行排序
reverse
排序規則,reverse = True 降序 , reverse = False 升序(默認)
排序方式
cmp 和 key
L=[('b',2),('a',1),('c',3),('d',4)]
sorted(L, cmp=lambda x,y:cmp(x[1],y[1])) # 利用cmp函數
# [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
sorted(L, key=lambda x:x[1]) # 利用key
# [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
多列排序
person_list = [
{'name':'戚子宇','gender':'1','score1':10,'score2':6,'score3':5},
{'name':'小明','gender':'0','score1':10,'score2':12,'score3':12},
{'name':'小藍','gender':'0','score1':8,'score2':9,'score3':16},
{'name':'小黑','gender':'0','score1':10,'score2':12,'score3':20},
]
# 指定某列排序
sorted(person_list, key=lambda person:person['score1'],reverse=True)
# 指定多列排序,score1相同按照score2排序,優先級從前往后,越來越小
sorted(person_list, key=lambda person:(person['score1'],person['score2']),reverse=True)
# 動態多列排序
排序字段不確定時,動態生成排序字段
score_list = ['score1','score2','score3']
sorted(person_list, key=lambda person:[person[score] for score in score_list],reverse=True)
注意:sorted函數會返回一個新的list
總結
以上是生活随笔為你收集整理的python 多列排序_python sorted多列排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql ley_len计算
- 下一篇: python sort 多级排序_pyt