我試圖按內部列表的每個索引對列表進行排序。 (所有內部列表的長度都是相同的。)目標是先按最後一列(內部列表的最後一個索引)排序行,然後再按前一列/索引依次排序。Python-按多個索引對列表進行排序,其中內部列表可能包含「無」
輸入:
[
['2016', 'E', None, '68', '94'],
['2016', 'A', None, '91', '25'],
['2016', 'C', None, '74', '25'],
['2017', 'C', None, '55', '20'],
['2015', 'D', None, '20', '14'],
['2016', 'B', None, '66', '66'],
['2017', 'E', None, '29', '41'],
['2017', 'F', None, '61', '22'],
['2015', 'A', None, '17', '96']
]
輸出:
[
['2015', 'A', None, '17', '96'],
['2015', 'D', None, '20', '14'],
['2016', 'A', None, '91', '25'],
['2016', 'B', None, '66', '66'],
['2016', 'C', None, '74', '25'],
['2016', 'E', None, '68', '94'],
['2017', 'C', None, '55', '20'],
['2017', 'E', None, '29', '41'],
['2017', 'F', None, '61', '22']
]
,我有以下的代碼,我試圖用這個:
def sort_table(column_count, rows)
for i in range(len(column_count) - 1, -1, -1):
rows = sorted(rows, key=operator.itemgetter(i))
return rows
然而,似乎由列表中存在或可能存在None
值的事實拋出。我不斷收到錯誤TypeError: '<' not supported between instances of 'NoneType' and 'str'
。有沒有正確的方法來處理這個問題?
https://stackoverflow.com/questions/12971631/sorting-list-by-an-attribute-that-can-be-none – Rockybilly
只需使用[ 'sorted'](https://docs.python.org/dev/library/functions.html#sorted) –
@PatrickHaugh - 我正在使用排序。我應該做什麼不同? – ebbishop