遍历列表以输出到表的10个空格的格式修饰符是什么?

时间:2019-10-23 05:48:31

标签: python list formatting

如果我有一堆数字或单词的列表,我将使用哪种格式修饰符将其输出到一个表中,该表每行一个空格,每行十个数字/单词?

list = [30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330, 360, 390,
420, 450, 480, 510, 540, 570, 600]

output table:
30 60 90 120 150 180 210 240 270 300
330 360 390 420 450 480 510 540 570 600

3 个答案:

答案 0 :(得分:0)

首先,您不要使用list作为要覆盖python函数的变量名。请尝试以下操作:

list1 = [30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330, 360, 390, 420, 450, 480, 510, 540, 570, 600]

result = ''
for i in range(0, len(list1), 10):
    result += ''.join(' '.join([str(x) for x in list1[i:i+10]])) + '\n'
print(result)

答案 1 :(得分:0)

这使您可以指定每行的数字

def create_rows(lst, numbers_per_row):
  return [lst[i:i+numbers_per_row] for i in range(0, len(lst), numbers_per_row)]

lst = [30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330, 360, 390,
420, 450, 480, 510, 540, 570, 600]

for row in create_rows(lst, 10):
  print(*row)

输出

30 60 90 120 150 180 210 240 270 300
330 360 390 420 450 480 510 540 570 600

答案 2 :(得分:0)

使用itertools.groupbyenumerate()组成10个元素的组:

>>> l = [30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330, 360, 390, 420, 450, 480, 510, 540, 570, 600]

>>> from itertools import groupby
>>> print('\n'.join(' '.join(str(item[1]) for item in group[1]) \
        for group in groupby(enumerate(l), lambda x: x[0]//10)))

30 60 90 120 150 180 210 240 270 300
330 360 390 420 450 480 510 540 570 600