如何在python上每行只打印10个项目呢?例如,使用下面这行代码:
for index, item in enumerate (list1):
if item == 'P':
print (index, end=' ')我得到了水平打印的结果,而不是垂直打印的“end=”,但我需要让它每行打印多达10个字符,才能得到如下所示的结果:
2 3 5 7 11 13 17 19 23 29
31 37 41 43 47 53 59 61 67 71
73 79 83 89 97 任何帮助都将不胜感激!
发布于 2016-04-25 08:58:05
只需使用%即可
printed = 0
for index, item in enumerate(list1):
if item == 'P':
print(index, end=' ')
if printed % 10 == 0 and printed != 0:
print('\n')
printed += 1发布于 2016-04-25 09:03:45
你可以将这些项目分块:
from itertools import chain, islice
def chunk(iterable, size=10):
"""Yield chunks of given size from iterable."""
iterator = iter(iterable)
for i in iterator:
yield chain((i,), islice(iterator, size-1))
pitems = (i for i, v in enumerate(list1) if v == 'P')
for chk in chunk(pitems):
print(' '.join(str(n) for n in chk))chunk函数将一个迭代器拆分成给定大小的组(在本例中为10)。pitems = (...)行筛选您想要索引的项目。然后,我们使用chunk将过滤后的项目分成10个一组,并打印每组。
发布于 2016-04-25 09:06:03
您可以将其分解为10项子列表,然后打印这些子列表。
from itertools import islice
sublists = [islice(list1, i*10, (i+1)*10) for i in range(len(list1)/10 +1)]
for sublist in sublists:
print ' '.join(map(str, sublist))https://stackoverflow.com/questions/36830619
复制相似问题