以设定长度的行打印列表(Python)

时间:2016-02-25 22:41:27

标签: python

我对Python很陌生,并且很难在这些情况下弄清楚如何在行中打印列表:

列表开始为空,计算机生成随机的2位整数条目,然后将其附加到列表中。使用

打印列表非常简单,无论是在单个列中还是在单行中
for i in list:
    print(i, end = "")

但我想要做的是打印4行,以剩余的为止结束列表(例如3行),结果看起来像这样:

81  27  19  55
99  45  32  90
67  83  20  72
12  86  21

最好和最直接的方法是什么?

编辑:我忘了澄清我正在使用Python 3.很抱歉。

5 个答案:

答案 0 :(得分:3)

正如其他人所表明的那样,有许多方法可以做到这一点。还有一个:

for i in range(0, len(mylist), 4):
    print(*mylist[i:i+4], sep=' ')

答案 1 :(得分:2)

您可以使用模数运算符来识别您在第4列上的时间并将end值更改为print

for i, val in enumerate(list):
    end = '\n' if (i + 1) % 4 == 0 else '  '
    print(val, end=end)

答案 2 :(得分:1)

只需添加一个语句,每隔4个项目放一个换行符:

count = 1
for i in list:
    print(i, end = "")
    count += 1
    if count % 4 == 0:
        print('\n')

如果您希望更好地建立索引:

for i in len(list):
    print(list[i], end = "")
    if i % 4 == 0:
        print('\n')

这能为你解决问题吗?

答案 3 :(得分:1)

for ind, val in enumerate(yourList):
    if ind != 0 and ind % 4 == 0:
        print('\n')
    print(val, end=' ')

答案 4 :(得分:0)

如果这是您的起始数字列表:

numbers = [81, 27, 19, 55, 99, 45, 32, 90, 67, 83, 20, 72, 12, 86, 21]

我首先将它们分组到不同的列表中:

grouped_numbers = [numbers[i:i+4] for i in range(0,len(numbers),4)]

然后我会使用join函数

打印出每个组之间有空格的组
for group_of_numbers in grouped_numbers:
    print (" ".join(map(str,group_of_numbers)))