在Python 3中对矩阵的行(或列)进行排序

时间:2014-05-03 20:35:26

标签: python sorting python-3.x matrix

我在Python 3.3中编写了这段代码来输入矩阵:

matrix = []
loop = True
while loop:
    line = input()
    if not line: 
        loop = False
    values = line.split()
    row = [int(value) for value in values]
    matrix.append(row)

我试图找到一种方法,可以对矩阵的列或行进行排序,而不使用numpy。我试过这个:

matrix = zip(*matrix)
matrix.sort(key=lambda x: x[1])

但它根本不起作用。而且例如行或列将使用排序算法排序,如:

inc = len(list) // 2
while inc:
    for i, el in enumerate(list):
        while i >= inc and list[i - inc] > el:
            list[i] = list[i - inc]
            i -= inc
        list[i] = el
    inc = 1 if inc == 2 else int(inc * 5.0 / 11)

1 个答案:

答案 0 :(得分:0)

您可以使用sort直接对行进行排序:

>>> matrix = [[9, 1, 8], [2, 7, 3], [6, 4, 5]]
>>> sort(matrix)
array([[1, 8, 9],
       [2, 3, 7],
       [4, 5, 6]])