打印矩阵的元素,每行换行,每行的元素用空格分隔
Posted
技术标签:
【中文标题】打印矩阵的元素,每行换行,每行的元素用空格分隔【英文标题】:Print the elements of the matrix with each row in a new line and elements of each row are separated by a space 【发布时间】:2019-08-19 16:10:12 【问题描述】:为您提供行数 (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
【问题讨论】:
【参考方案1】:此脚本将以包含空格分隔的两个数字 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
注意:最后一行后面没有换行符。
【讨论】:
这比原始代码更漂亮,但从技术上讲不会创建矩阵 - 它只是打印这样的矩阵将具有的值。 ;-) 正确,应该是:print('\n'.join(' '.join(str(C*row + col) for col in range(1, C+1)) for row in range(R)), end='')
@Amdoc 现在试试,我做了小修正。谢谢天门【参考方案2】:
你可以试试:
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)
【讨论】:
【参考方案3】: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=" ")
【讨论】:
以上是关于打印矩阵的元素,每行换行,每行的元素用空格分隔的主要内容,如果未能解决你的问题,请参考以下文章