2016-03-19 24 views
-1

私はstdin(コンソール)から行列を読み込む方法は?

標準入力から読み込み、最初の行は行列の次元を指定するために、常に正方行列をしようとしているが、私のコードは、最初の行のみ

例入力

3 
    0 2 3 
    2 4 1 
    3 1 4 

私のコード

を読み込み official documentationによると
def read_matrix(formatted_string): 
    list_of_lists = [list(map(int, row.split())) for row in formatted_string.split('\n')] 

    return list_of_lists 

x = input("enter the list of lists of numbers?") 
print(read_matrix(x)) 

答えて

1

行の数だけを要求していますが、行自体の内容は問いません。

def read_matrix(count): 
    list_of_lists = [list(map(int, input('Enter a row: ').split())) for _ in range(count)] 

    return list_of_lists 

x = input("enter the list of lists of numbers?") 
print(read_matrix(int(x))) 

それは最初のユーザーに行数を照会し、入力したユーザのすべての行を聞いてきますread_matrixにその番号を渡します:コードの後に​​は、完全な行列を生成する方法を示しています。

0

機能次いで

(末尾の改行ストリッピング) が文字列に変換し、入力からラインを読み出してください、ノートを読み出します。しかしここではinputへの1回の呼び出しで4行を読み込もうとしています。この入力を行うにはループを実行するとよいでしょう。

関連する問題