gpt4 book ai didi

Python 3 : sort rows in 2D matrix, 其中列是列表

转载 作者:行者123 更新时间:2023-11-28 18:51:24 25 4
gpt4 key购买 nike

我创建了一个这样的二维矩阵:

45  67  Row  Fine
25 22 Abe Real
58 54 Abe Noon

每一列都是一个列表。行中的值连接在一起,因此索引号为 2 的第三行中的值彼此属于彼此。

我想对行进行排序,先在第三行,然后在第四行,这样就变成了:

58  54  Abe  Noon  
25 22 Abe Real
45 67 Row Fine

我不知道该怎么走。我可以对一个列表进行排序,该列表具有第三列的值。然后找出新的索引号并将它们与旧的进行比较。然后我也可以调整其他列表,以便所有行再次正确。但是我仍然需要对第四行进行排序。

我看到一些用于对列表列表进行排序的代码 here ,但我需要行列表而不是列列表(如果我理解得很好的话)。

或者创建字典是一种明智的方式吗?

最佳答案

您有一个列列表。要使其成为行列表,您可以使用 zip :

iterable_of_rows = zip(*my_list_of_columns)

将其与执行这些排序的典型方法相结合:

import operator
sorted_list_of_rows = sorted(zip(*my_list_of_columns), key = operator.itemgetter(2,3))
list_of_columns = list(zip(*sorted_list_of_rows))

和测试:

>>> my_list_of_columns = [[45,25,48],[67,22,54],["Row","Abe","Abe"],["Fine","Real","Noon"]]
>>> import operator
>>> sorted_list_of_rows = sorted(zip(*my_list_of_columns), key = operator.itemgetter(2,3))
>>> list_of_columns = list(zip(*sorted_list_of_rows))
>>> list_of_columns
[(48, 25, 45), (54, 22, 67), ('Abe', 'Abe', 'Row'), ('Noon', 'Real', 'Fine')]

关于Python 3 : sort rows in 2D matrix, 其中列是列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12351465/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com