用新行打印每行的矩阵元素,每行的元素用空格隔开

时间:2019-08-19 16:10:12

标签: python matrix input split

  

将为您提供行数(R)和列数(C)。您的任务是生成具有R行和C列的矩阵,以使所有数字以逐行的方式从1开始递增的顺序。

     

输入格式:   第一行包含两个数字R和C,以空格分隔。

     

输出格式:   用新行打印每行的矩阵元素,每行的元素用空格隔开。

     

注意:每行的最后一个元素之后不应有任何空格,最后一行之后也不应有新行。

     

示例:

     

输入:

3 3
  

输出:

1 2 3
4 5 6
7 8 9
  

我尝试了以下代码。它在在线编译器上运行。但是在某些编译器中显示错误,\ n在输出中。我要删除此错误

x=[]
a=[int(n) for n in input().split()]
#print(*a)

for i in range(a[0]):
    x.append(list(map(int, input().rstrip().split())))

for i in range(a[0]):
    for j in range(a[1]): 
        print(x[i][j], end = " ")
    print()

所需的新行输出

1 2 3
4 5 6

实际输出

1 2 3\n
4 5 6

3 个答案:

答案 0 :(得分:0)

您可以尝试:

for i in range(a[0]):
  for j in range(a[1]): 
    if (j == a[1]-1):
      print(x[i][j])
    else:
      print(x[i][j], end = " ")

您还可以将代码简化为:

a=[int(n) for n in input().split()] # e.g. a = [2,4]

matrix = [[i*a[1]+j+1 for j in range(a[1])] for i in range(a[0])]
for m in matrix:
    print(*m)

答案 1 :(得分:0)

此脚本将以行的形式输入,该行包含两个数字R和C,并用空格分隔。

它将打印矩阵,并用空格分隔值:

R, C = map(int, input().split())

print('\n'.join(' '.join(str(C*row + col) for col in range(1, C+1)) for row in range(R)), end='')

打印(在输入3 3的情况下):

1 2 3
4 5 6
7 8 9

注意:最后一行之后没有换行符。

答案 2 :(得分:0)

r,c = input("Enter the number of Row and Column : ").split()
r=int(r)
c=int(c)
matrix=[]
count=0

for i in range(r*c):
    matrix.append(i+1)

for i in matrix:
    count+=1
    if(count==r):
        print(i)
        print("\n")
        count=0
    else:
        print(i,end=" ")