一尘不染

按两个字段对Python列表进行排序

python

我有一个从排序的csv创建的以下列表

list1 = sorted(csv1, key=operator.itemgetter(1))

我实际上想按两个条件对列表进行排序:首先按字段1中的值,然后按字段2中的值。我该怎么做?


阅读 731

收藏
2020-02-18

共2个答案

一尘不染

像这样:

import operator
list1 = sorted(csv1, key=operator.itemgetter(1, 2))
2020-02-18
一尘不染

使用lambda函数时无需导入任何内容。
以下list按第一个元素排序,然后按第二个元素排序。

sorted(list, key=lambda x: (x[0], -x[1]))
2020-02-18