[英]Creating matrix with sequential numbers in Python
我为此使用了两个 for 循环,然后我就卡在这里了;
size = int(input("size? : "))
matrix = list(range(size**2))
for i in range(size):
for j in range(size):
print(j, end=" ")
print()
而我的 output 是;
size? : 3
0 1 2
0 1 2
0 1 2
我怎样才能让它看起来像;
0 1 2
3 4 5
6 7 8
但它必须适用于我给出的任何数字
size = int(input("size? : "))
for i in range(size):
for j in range(i*size, i*size+size):
print(j, end=" ")
print()
您不能期望在不使用matrix
变量的情况下打印0-9
的值,您只需每次打印j
,这是大小范围,这是正常的,您可以使用matrix
:
for i in range(size):
for j in range(size):
print(matrix[i * size + j], end=" ")
# print(f'{matrix[i * size + j]:>2d}', end=" ") to format 2 digit numbers
print()
这也有效
for idx in range(0, len(matrix), size):
print(*matrix[idx:idx + size])
添加到其他解决方案的 Pythonic 解决方案。
您可以创建一个生成器 object ,而不是创建一个您实际上不使用的列表matrix
,它将按顺序生成数字,而无需任何索引或计算。
size = int(input("size? : "))
matrix = iter(range(size**2))
for i in range(size):
for j in range(size):
print(next(matrix), end=" ")
print()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.