当前位置:  开发笔记 > 编程语言 > 正文

如何使用sorted()一次对两列进行排序

如何解决《如何使用sorted()一次对两列进行排序》经验,为你挑选了1个好方法。

我有一个.csv文件,它包含两列我要排序的列.我想按字母顺序对第一列进行排序,将第二列按最高编号排序到最低.

我习惯sortedColumn = sorted(csv_opener,key=operator.itemgetter(0))按字母顺序对第一列进行排序,但我也希望对第二列做同样的事情.我该怎么做呢?



1> Martijn Piet..:

您可以通过让keycallable返回一个元组来对两个方面进行排序.

我假设第二列是一个可转换为整数的字符串:

sortedColumn = sorted(csv_opener, key=lambda row: (row[0], -int(row[1])))

通过返回负值,row[1]您可以从最高到最低排序,而主要排序是完成或row[0]按字母顺序排序.

所以对于样本行:

Alpha, 10
Beta, 30
Alpha, 42
Gamma, 81
Beta, 10

排序后的输出为您提供:

Alpha, 42
Alpha, 10
Beta, 30
Beta, 10
Gamma, 81

首先按字母顺序排序第一列,然后在第一列中输出相等的值,行按第二列的降序排序.

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有