【问题标题】:Python: Printing a list with a line break after every nth itemPython:在每第 n 个项目后打印一个带有换行符的列表
【发布时间】:2014-05-04 13:38:41
【问题描述】:

我有一个要打印的媒体列表,格式如下,每第 n 个项目后有一个换行符:

media_list = ['A001', 'A002', 'A003', 'A004', 'A005', 'A006', 'A007', 'A008']

A001 或
A002 或
A003 或
A004 或

A005 或
A006 或
A007 或
A008 或

但我不确定如何创建换行符。这是我到目前为止所拥有的:
(我正在考虑以某种方式在列表理解中使用间隙元组......)

print('\n'.join('{}\tOR'.format(m) for m in media_list))
gaps = tuple(range(0, len(media_list), 4))[:0:-1]

实际上,该列表将包含数百个条目,并且需要在每 30 次之后换行。
第一个 python 脚本,感谢帮助!

【问题讨论】:

    标签: python-3.x printing list-comprehension line-breaks


    【解决方案1】:

    不确定这是您想要的。希望对你有帮助:)

    media_list = [
        'A00{}'.format(i) for i in range (1,10)
    ]
    
    nth_item = 4
    
    str_list = [
        '{}\tOR\n'.format(m)
        if(((media_list.index(m)+1) % nth_item) == 0)
        else
        '{}\tOR'.format(m)
        for m in media_list
    ]
    
    print('\n'.join(str_list))
    

    【讨论】:

    • 或者在生成器表达式中使用enumerate,而不使用str.joinprint(*(('{}\tOR' if i % nth_item else '{}\tOR\n').format(m) for i, m in enumerate(media_list, 1)), sep='\n')
    【解决方案2】:

    你也可以使用

    for i, e in enumerate(my_list, n_elements):
        print(e)
    

    将 my_list 替换为您的列表名称,将 n_elements 替换为您想要换行的元素数。

    【讨论】:

      猜你喜欢
      • 2019-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-22
      相关资源
      最近更新 更多