繁体   English   中英

在 Python 中创建具有序列号的矩阵

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM