[英]Sort rows (or columns) of a matrix in Python 3
我用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)
您可以使用sort
直接对行进行sort
:
>>> matrix = [[9, 1, 8], [2, 7, 3], [6, 4, 5]]
>>> sort(matrix)
array([[1, 8, 9],
[2, 3, 7],
[4, 5, 6]])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.