在Python上打印特定数量的行

在Python上打印特定数量的行,python,printing,format,Python,Printing,Format,如何在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 任何帮

如何在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 

任何帮助都将不胜感激!

只需使用
%

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

只需使用
%

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

您可以将项目分块:

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
函数将一个item表拆分为给定大小的组(在本例中为10)。
pitems=(…)
行过滤器用于您想要索引的项目。然后,我们获取过滤后的项目,使用
chunk
将其拆分为10个组,并打印每个组。

您可以对项目进行分块:

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
函数将iterable拆分为给定大小的组(在本例中为10)为您想要索引的项目设置行筛选器。然后,我们使用
chunk
将筛选的项目分成10个组,并打印每组。

您可以将其拆分为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))

您可以将其拆分为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))

这实际上是在Python中记录的。在您的例子中,因为您需要尾随位,所以您需要使用
itertools.zip\u longest

primes = [i for i,v in enumerate(list1) if v == 'P']

from itertools import zip_longest
for group in zip_longest(*[iter(primes)]*10):
    print(group)

这实际上是在Python中记录的。在您的例子中,因为您需要尾随位,所以您需要使用
itertools.zip\u longest

primes = [i for i,v in enumerate(list1) if v == 'P']

from itertools import zip_longest
for group in zip_longest(*[iter(primes)]*10):
    print(group)

您可以将计数器设置为10开始,并在每次打印时将其减少1。打印10后,计数器将为零。此时,打印新行并将计数器重置为10

item_cnt_in_line = 10
for index, item in enumerate (list1):
    if item == 'P':
        if item_cnt_in_line == 0:
            print()
            item_cnt_in_line = 10

        print (index, end=' ')
        item_cnt_in_line -= 1

您可以将计数器设置为10开始,并在每次打印时将其减少1。打印10后,计数器将为零。此时,打印新行并将计数器重置为10

item_cnt_in_line = 10
for index, item in enumerate (list1):
    if item == 'P':
        if item_cnt_in_line == 0:
            print()
            item_cnt_in_line = 10

        print (index, end=' ')
        item_cnt_in_line -= 1