2016-09-24 74 views
0

我需要從Python中的stdin中讀取k個矩陣大小nxm。 在第一行中,必須有矩陣的數量(k),然後是矩陣的k個描述:在第一行中,2個大小的整數(n和m)除以空格,然後是矩陣。從Python中的stdin中讀取k個矩陣大小nxm

下面是一個例子:

2 
2 3 
4 5 6 
3 1 7 
4 4 
5 3 4 5 
6 5 1 4 
3 9 1 4 
8 5 4 3 

你能告訴我怎樣才能做到這一點? 我可以這樣做只是不考慮M(1點矩陣):

n = int(input()) 
a = [] 
for i in range(n): 
    a.append([int(j) for j in input().split()]) 

我已經發現了一些類似的問題,但不使用標準輸入(例如,從文件中讀取時)或字符串的矩陣大小沒有設置。

+0

可能的重複http://stackoverflow.com/questions/23839928/python-read-data-into-2-dimensional-array – nik

+0

在這個問題stdin不使用,它是從文件讀取。我發現了一些使用stdin的問題,但他們沒有幫助,因爲矩陣中字符串的大小沒有設置。 –

回答

0

你是對的。嘗試用簡單的步驟來分解它。基本上n×m矩陣是n行,每行有m個元素(非常明顯)。如果我們有n = 1,那麼我們有一條線,其中有m個元素。採取這種輸入我們只是

matrix = input().split() #read the input 
matrix = [ int(j) for j in matrix] #matrix is now 1 x m list 

或簡化這個

matrix = [ int(j) for j in input().split() ] 

現在假設我們有n行,這意味着我們必須做到這一點n次這簡直是循環n次,

matrix = [ [ int(j) for j in input().split() ] for i in n ] 

更Python的方式是使用地圖,

matrix= [ list(map(int, input().split())) for i in range(n) ]