python sort 多级排序_为什么在python中使用排序功能进行多级排序...
這篇文章與How do I sort a list of dictionaries by values of the dictionary in Python?不同,我認為無法使用lambda sort解決,因為應該對兩個屬性進行排序,一個是升序,另一個是降序.
我認為答案應該是
在第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)
那么為什么程序輸出錯誤的答案呢?
編輯1:
在這里,我選擇cmp而不是key = itemgetter(2,3),因為它可能存在更復雜的結構,無法使用itemgetter進行排序,而只能使用cmp函數進行排序.
總結
以上是生活随笔為你收集整理的python sort 多级排序_为什么在python中使用排序功能进行多级排序...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 企业信用报告如何获取
- 下一篇: python numpy矩阵乘法_高维P