首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python上打印特定行数

在Python上打印特定行数
EN

Stack Overflow用户
提问于 2016-04-25 08:54:32
回答 5查看 791关注 0票数 1

如何在python上每行只打印10个项目呢?例如,使用下面这行代码:

代码语言:javascript
复制
for index, item in enumerate (list1):
    if item == 'P':
        print (index, end=' ')

我得到了水平打印的结果,而不是垂直打印的“end=”,但我需要让它每行打印多达10个字符,才能得到如下所示的结果:

代码语言:javascript
复制
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 

任何帮助都将不胜感激!

EN

回答 5

Stack Overflow用户

发布于 2016-04-25 08:58:05

只需使用%即可

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2016-04-25 09:03:45

你可以将这些项目分块:

代码语言:javascript
复制
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个一组,并打印每组。

票数 0
EN

Stack Overflow用户

发布于 2016-04-25 09:06:03

您可以将其分解为10项子列表,然后打印这些子列表。

代码语言:javascript
复制
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))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36830619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档