猿问

如何在 Python 中重复 y 次增加 x 个元素

我有x哪些是需要的元素数量,y哪些是需要元素的次数。


例如:


>>> x = 5

>>> y = 2

>>> for i in range(y):

...  for j in range(x):

...   print j,

... 

0 1 2 3 4 0 1 2 3 4

预期输出为:


0 1 2 3 4

5 6 7 8 9

有人可以帮助我实现预期的输出吗? for任何方式的循环或列表理解都可以。提前致谢。


www说
浏览 283回答 3
3回答

暮色呼如

选项1如果需要将结果存储在列表中,可以使用解包和算术:>>> [[*range(i*x, i*x+x)] for i in range(y)][[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]]选项 2如果您只是对打印值感兴趣,则无需通过创建中间子列表来浪费空间,您可以改为使用range对象:for row in [range(i*x, i*x+x) for i in range(y)]:    print(*row)0 1 2 3 45 6 7 8 9

30秒到达战场

这个“带偏移量的范围”的想法最终成为一种严肃的方法:for i in range(y):    print(*range(i*x, (i+1)*x))0 1 2 3 45 6 7 8 9

MMTTMM

你可以使用 numpy。由于您只是在范围内计数[0, x*y[并且只想将其绘制为某种形状,因此 numpy 可以在一个班轮中完全做到这一点:import numpy as npx = 5y = 2np.arange(x*y).reshape(y, x)结果:array([[0, 1, 2, 3, 4],       [5, 6, 7, 8, 9]])
随时随地看视频慕课网APP

相关分类

Python
我要回答