我如何修改這個程式以輸入任何維度的矩陣,如何在不輸入n的情況下改變n?
開發一個程式,輸入一個任意維度的矩陣,并輸出該矩陣的轉置。當輸入-1時,你應該停止接受行的輸入。使用一個2D(二維)串列來存盤該矩陣。你應該處理一些例外情況,例如檢查元素數量不一致的無效行。
注意:對于元素數量不一致的無效行,列印 "Invalid Matrix "作為錯誤資訊。對于你正在處理的任何其他例外,列印 "錯誤"。
嘗試:
lst=[] 。
n=4
for i in range(n) :
inp=input()
if inp==-1:
break: break.
marks=inp.split()
mark_list = list(map(int,marks)
lst.append(mark_list)
for j in range(len(lst[0])) 。
for k in range(len(lst)) 。
print(lst[k][j],end=" "/span>)
print("
",end=" ")
except EOFError : 通過 except IndexError: print("無效的矩陣")
uj5u.com熱心網友回復:
list(zip(*lst)
這一行對整個矩陣進行了轉置
。uj5u.com熱心網友回復:
如果你想對任何維度的矩陣進行轉置,使用numpy:
# Python env: pip install numpy
# Miniconda env: conda install numpy。
# Anaconda env: 已經安裝了。
import numpy as np
lst = [[[11, 12], [13, 14], [15, 16] ]。[[21, 22], [23, 24], [25, 26] ]]
m = np.array(lst)
M = m.T
輸出:
>>> m
array([[11, 12],
[13, 14] 。
[15, 16] ]。
[[21, 22] 。
[23, 24]。
[25, 26]])。)
>>> M
array([[11, 21],
[13, 23] 。
[15, 25]]。
[[12, 22] 。
[14, 24]。
[16, 26]])。)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/319998.html
標籤:
