2016-09-24 3 views
0

Pythonでstdinからk個の行列サイズnxmを読み込む必要があります。 最初の行には、行列の数(k)、行列の-kの記述がなければなりません。最初の行には、サイズ(nとm)の2つの整数がスペースで除算されます。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 

あなたは、私がこれを行うことができる方法を教えていただけますか? 私は(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 ] 

matrix= [ list(map(int, input().split())) for i in range(n) ] 
関連する問題