我在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)
答案 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]])