python - 按可变数量的键对多维列表进行排序

标签 python sorting

我读过 this post并没有最终为我工作。

编辑:我描述的功能就像 Excel 中的排序功能...如果这样更清楚的话

这是我的情况,我有一个制表符分隔的文本文档。大约有 125,000 行,每行 6 列(列由制表符分隔)。我已将文档拆分为二维列表。

我正在尝试编写一个通用函数来对二维列表进行排序。基本上我想要一个函数,我可以在其中传递大列表,以及一个或多个列的键,我想对大列表进行排序。显然,我希望传递的第一个键是主要排序点,然后是第二个键,依此类推。

还是一头雾水?

这是我想做的一个例子。

Joel    18  Orange  1
Anna    17  Blue    2
Ryan    18  Green   3
Luke    16  Blue    1
Katy    13  Pink    5
Tyler   22  Blue    6
Bob     22  Blue    10
Garrett 24  Red 7
Ryan    18  Green   8
Leland  18  Yellow  9

假设我将这个列表传递给了我的魔法函数,就像这样:

sortByColumn(bigList, 0)

Anna    17  Blue    2
Bob     22  Blue    10
Garrett 24  Red 7
Joel    18  Orange  1
Katy    13  Pink    5
Leland  18  Yellow  9
Luke    16  Blue    1
Ryan    18  Green   3
Ryan    18  Green   8
Tyler   22  Blue    6

和...

sortByColumn(bigList, 2, 3)

Luke    16  Blue    1
Anna    17  Blue    2
Tyler   22  Blue    6
Bob     22  Blue    10
Ryan    18  Green   3
Ryan    18  Green   8
Joel    18  Orange  1
Katy    13  Pink    5
Garrett 24  Red 7
Leland  18  Yellow  9

有什么线索吗?

最佳答案

import operator:
def sortByColumn(bigList, *args)
    bigList.sort(key=operator.itemgetter(*args)) # sorts the list in place

关于python - 按可变数量的键对多维列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1683775/

相关文章:

Python:QTableWidget 中的数值排序

c++ - 如何获得 vector 的排序索引?

对字符串数组进行排序的 JavaScript 函数在数组长度为 10 后表现得很奇怪

python - matplotlib 直方图上的第一个和最后一个条出现移动

python - 什么是 python 中的默认模块(当我们运行 Python 时导入它们,例如 "print")

python - 如何比较集群?

sorting - ElasticSearch 深度嵌套排序/评分

java - 在 Java 中对 LinkedHashMap 进行排序

python - 在 Python 的 Spyder 编辑器中更改缩进设置

python - Django - 通过相关字段的 ID 获取对象