我读过 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/