我正在尝试接受用户输入并以框格式将数字列表打印到python中的不同行上。

现在我有:

horizontalsize =  int (input ('please enter horizontal size '))

verticalsize = int (input ('please enter vertical size '))

numbers = horizontalsize * verticalsize

mylist = []

mylist.append(range(1,numbers))

for i in range(1,numbers,horizontalsize):

    print (i)


用户将输入高度和宽度,如果高度输入为5而宽度输入为3,则应打印:

1 2 3

4 5 6

7 8 9

10 11 12

13 14 15

现在我正在得到:

1个

4

7

10

13

我如何才能填写其余数字?
任何帮助是极大的赞赏!

最佳答案

这应该工作:

for i in range(1, numbers, horizontalsize):
    lst = range(i, i+horizontalsize)
    print lst  # format is [1,2,3]
    print ' '.join(map(str,lst))  # format is "1 2 3"


您还可以通过列表理解来声明2D列表,例如:

>>> horizontalsize = 3
>>> numbers = 15
>>> ll = [[x for x in range(y,y+horizontalsize)]
for y in range(1,numbers,horizontalsize)]
>>> ll
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15]]
>>> for line in ll:
...    print ' '.join(map(str,line))
...
1 2 3
4 5 6
7 8 9
10 11 12
13 14 15

关于python - python打印列表项在线增加,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28814951/

10-14 17:48
查看更多