我要自然排序,無論價值,我發現代碼來做到這一點其他地方堆,我不能將其納入我有什麼,Python的排序自然裏面的λ
這裏就是我有
[10, ['', '', '', '9']]
[9, ['', '', '', '8']]
[8, ['', '', '', '7']]
[7, ['', '', '', '6']]
[6, ['', '', '', '5']]
[5, ['', '', '', '4']]
[4, ['', '', '', '3']]
[3, ['', '', '', '2']]
[18, ['', '', '', '17']]
[17, ['', '', '', '16']]
[16, ['', '', '', '15']]
[15, ['', '', '', '14']]
[14, ['', '', '', '13']]
[13, ['', '', '', '12']]
[12, ['', '', '', '11']]
[11, ['', '', '', '10']]
[2, ['', '', '', '1']]
[1, ['', '', '', '0']]
:時,它通過其唯一的「0」是在索引中,右上角,「子列表[1] [3]」
sheet_lists = [[1, ['', '', '', '0']],
[2, ['', '', '', '1']],
[3, ['', '', '', '2']],
[4, ['', '', '', '3']],
[5, ['', '', '', '4']],
[6, ['', '', '', '5']],
[7, ['', '', '', '6']],
[8, ['', '', '', '7']],
[9, ['', '', '', '8']],
[10, ['', '', '', '9']],
[11, ['', '', '', '10']],
[12, ['', '', '', '11']],
[13, ['', '', '', '12']],
[14, ['', '', '', '13']],
[15, ['', '', '', '14']],
[16, ['', '', '', '15']],
[17, ['', '', '', '16']],
[18, ['', '', '', '17']]]
sheet_lists.sort(key=lambda lst: lst[1][3], reverse=True)
for l in sheet_lists:
print (l)
這產生的輸出是排序的主要子列表的順序
我希望:
[18, ['', '', '', '17']]
[17, ['', '', '', '16']]
[16, ['', '', '', '15']]
[15, ['', '', '', '14']]
[14, ['', '', '', '13']]
[13, ['', '', '', '12']]
[12, ['', '', '', '11']]
[11, ['', '', '', '10']]
[10, ['', '', '', '9']]
[9, ['', '', '', '8']]
[8, ['', '', '', '7']]
[7, ['', '', '', '6']]
[6, ['', '', '', '5']]
[5, ['', '', '', '4']]
[4, ['', '', '', '3']]
[3, ['', '', '', '2']]
[2, ['', '', '', '1']]
[1, ['', '', '', '0']]
正如您所看到的,這種排序不正確並且注意:我不想在排序前將值簡單地轉換爲INT或FLOAT。這是因爲我預計包含字母或可能符號的值。
下面的代碼進行自然排序的平面列表,信用:https://blog.codinghorror.com/sorting-for-humans-natural-sort-order/
import re
def sort_nicely(l):
convert = lambda text: int(text) if text.isdigit() else text
alphanum_key = lambda key: [ convert(c) for c in re.split('([0-9]+)', key) ]
l.sort(key=alphanum_key)
我似乎就是無法將其納入我的功能,因爲我有打電話給lambda來選擇包含在一個值列表中的子列表
你得到的輸出是什麼,你期望它是什麼 – user1767754
你可以在上面的代碼中更改'alphanum_key'來提取你想要的子列表元素。然後'sort_nicely'將在您的特定列表上運行。所以最後'key'是適當的元素,所以',key [1] [3])]'在那裏結束。 – pvg
如果你期望字母和符號,你應該添加一些樣本輸入和輸出,以便a)人們不再告訴你只需轉換爲數字,b)你想要完成的種類更清晰。 – pvg