Python - 每 x 个元素插入换行符

标签 python line-breaks

我已经环顾四周寻找类似的问题,但似乎只有 Visual Basic 才提出过这个问题。我想我想做的很简单,但作为初学者,我似乎找不到完成它的方法。

我有一个这样的字符串列表:

macrolist = ['hans', 'are', 'we', 'the', 'baddies', 'cake', 'or', 'death', 'cake', 'please', 'do', 'you', 'have', 'a', 'flag']

问题是,这是在从每行只有 5 个单词的选项卡式文件读取后生成的,然后在其中进行了一些更改(主要是改组)。为了生成输出文件,我可以这样加入列表的元素:

'\t'.join(macrolist)

...然后将其写入一个新文件,但这将输出一个只有一行制表符间隔项目的文本文件。我需要一个每行只有 5 个单词的文件,就像原来的那样,所以我想,在加入列表之前,我可以每 5 个单词插入一个换行符。我尝试了以下操作,但出现“/: 'str' 和 'int' 不支持的操作数类型”错误:

for index in macrolist:
    op = index/5
    if op is int:
        macrolist.append('\n')

print macrolist

我的想法是,如果给定索引是 5 的倍数,代码可以在之后立即插入一个换行符。然后我可以加入列表,输出将如我所愿。但是,当然,即使是设计也可能是错误的……有什么想法吗?

提前致谢。

最佳答案

尝试:

def chunks(l, n):
    """ Yield successive n-sized chunks from l.
    """
    for i in xrange(0, len(l), n):
        yield l[i:i+n]
chunks(macrolist,5)

然后像这样遍历列表中的列表:

for chunk in chunks(macrolist,5):
    print '\t'.join(chunk)  

block 代码取自 here .多谢Ned Batchelder对于该代码。

关于Python - 每 x 个元素插入换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10188453/

相关文章:

python - 如何从 Flask 应用程序执行 Shell 脚本

python - 如何分配到重复字段?

python - 为什么文件读/写会向文件添加额外的行?

html - <br/> 标记后不显示边距

css - Chrome 中的 HTML 标签断字

python - 在 AzureML 中部署模型时如何将参数传递给评分文件

python - 仅显示 Django 中的最新 3 个帖子?

python - 计算 ListView 中的帖子数量

Java - 如何在一个输入中输入多行文本

html - HTML 中的换行符为 '\n'