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

新手上路,请多包涵

我从排序的 csv 创建了以下列表

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

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

原文由 half full 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 372
2 个回答

像这样:

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

原文由 mouad 发布,翻译遵循 CC BY-SA 3.0 许可协议

使用 lambda 函数时无需导入任何内容。

以下排序 list 按第一个元素排序,然后按第二个元素排序。您还可以按一个字段升序排序,另一个字段降序排序,例如:

 sorted_list = sorted(list, key=lambda x: (x[0], -x[1]))

原文由 jaap 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题