我正在尝试按内部列表的每个索引对列表进行排序。(所有内部列表的长度相同。)目标是首先按最后一列(内部列表的最后一个索引)对行进行排序,然后按上一列/索引进行排序,依此类推。你知道吗
输入:
[
['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'
。有没有正确的方法来处理这个问题?你知道吗
除了
key
,sorted
函数还允许您通过传递cmp
参数来自定义comparator函数。只需传递一个包含两个参数的函数,如果第一个参数较小,则返回负值;如果第一个参数较大,则返回正值;如果两个参数相等,则返回零。取决于你想要什么,你可以做一些在多维列表中使用排序
印刷品
与您所需的输出相同
相关问题 更多 >
编程相关推荐