python sort 多级排序_为什么在python中使用排序功能进行多级排序...
這篇文章與How do I sort a list of dictionaries by values of the dictionary in Python?不同,我認(rèn)為無法使用lambda sort解決,因?yàn)閼?yīng)該對(duì)兩個(gè)屬性進(jìn)行排序,一個(gè)是升序,另一個(gè)是降序.
我認(rèn)為答案應(yīng)該是
在第2列下降并在第3列上升
[1, 5, 7]
[2, 3, 4]
[3, 2, 2]
[1, 2, 3]
[4, 2, 9]
[3, 1, 9]
但輸出是:
[1, 5, 7]
[2, 3, 4]
[1, 2, 3]
**[3, 2, 2]** i think it's wrong here
[4, 2, 9]
[3, 1, 9]
代碼如下
l=[
[1,2,3],
[2,3,4],
[1,5,7],
[3,1,9],
[3,2,2],
[4,2,9]
]
def printlist(l):
for ll in l:
print ll
def comp1(a,b):
if a[1]
return 1
if a[1]==b[1]:
return a[2]>b[2]
else:
return -1
l3=sorted(l,cmp=comp1)
printlist(l3)
那么為什么程序輸出錯(cuò)誤的答案呢?
編輯1:
在這里,我選擇cmp而不是key = itemgetter(2,3),因?yàn)樗赡艽嬖诟鼜?fù)雜的結(jié)構(gòu),無法使用itemgetter進(jìn)行排序,而只能使用cmp函數(shù)進(jìn)行排序.
總結(jié)
以上是生活随笔為你收集整理的python sort 多级排序_为什么在python中使用排序功能进行多级排序...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 企业信用报告如何获取
- 下一篇: 沪深什么意思