3 回答

TA貢獻(xiàn)1853條經(jīng)驗 獲得超9個贊
選項1
如果需要將結(jié)果存儲在列表中,可以使用解包和算術(shù):
>>> [[*range(i*x, i*x+x)] for i in range(y)]
[[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]]
選項 2
如果您只是對打印值感興趣,則無需通過創(chuàng)建中間子列表來浪費空間,您可以改為使用range對象:
for row in [range(i*x, i*x+x) for i in range(y)]:
print(*row)
0 1 2 3 4
5 6 7 8 9

TA貢獻(xiàn)1828條經(jīng)驗 獲得超6個贊
這個“帶偏移量的范圍”的想法最終成為一種嚴(yán)肅的方法:
for i in range(y):
print(*range(i*x, (i+1)*x))
0 1 2 3 4
5 6 7 8 9

TA貢獻(xiàn)1869條經(jīng)驗 獲得超4個贊
你可以使用 numpy。由于您只是在范圍內(nèi)計數(shù)[0, x*y[并且只想將其繪制為某種形狀,因此 numpy 可以在一個班輪中完全做到這一點:
import numpy as np
x = 5
y = 2
np.arange(x*y).reshape(y, x)
結(jié)果:
array([[0, 1, 2, 3, 4],
[5, 6, 7, 8, 9]])
添加回答
舉報