【发布时间】:2014-06-21 03:03:27
【问题描述】:
我正在尝试找到一种转置矩阵的方法,例如:
[[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
它会将矩阵更改为:
[[1, 4, 7],
[2, 5, 8],
[3, 6, 9]]
到目前为止,我尝试了几件事,但都没有成功。我试过了:
def transpose_matrix(matrix): # this one doesn't change the matrix at all
zip(*matrix)
return matrix
或
def transpose_matrix(matrix):
map(list, zip(*matrix))
return matrix
或
def transpose_matrix(matrix): # this one returns an empty list []
print(list(zip(*matrix)))
我想在不使用numpy等外部库的情况下对其进行编码。
之后,它会将结果返回到此菜单并使用转置矩阵进行下一个选项(未显示):
def menu(matrix):
print('choose option')
loop = True
while loop:
print('''
1-display matrix
7-transpose it
8-other option
0-back
''')
choi = input('cchoice:')
if choi =='1':
print('\n'.join([' '.join(map(str, row)) for row in matrix]))
elif choix == '7':
matrix = transpose_matrix(matrix)
else:
print('invalid choice')
【问题讨论】:
标签: python python-3.x matrix transpose