2016-09-24 49 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) ]