python - 如何换行?
问题描述
打印列表中的项目时,我在保持某种格式时遇到问题:
[TEXT1, TEXT2, TEXT3, TEXT4, TEXT5, TEXT6, TEXT7, TEXT8, TEXT9]
预期输出:('~' 表示文档中的空白)
~~~~~~~~~~TEXT1, TEXT2, TEXT3, TEXT4, TEXT5,
~~~~~~~~~~TEXT6, TEXT7, TEXT8, TEXT9
我遇到的问题是TEXT2
在 之后追加TEXT1
,而不重新添加空格('~')。
a = ['A121', 'A221', 'A321', 'A421', 'A521', 'A621', 'A721', 'A821', 'A921']
for v in a:
counter = 0
if counter == 5:
print '\n'
print " {},".format(v.ljust(0)),
输出:
A121 A221 A321 A421 A521 A621 A721 A821 A921
预期输出:
A121, A221, A321, A421, A521,
A621, A721, A821, A921
解决方案
有很多方法可以解决这个问题:
一:
a = ['A121', 'A221', 'A321', 'A421', 'A521', 'A621', 'A721', 'A821', 'A921']
INDENT = ' '*10
NUMBER_OF_COLUMNS = 5
lead = INDENT
for item_number, item in enumerate(a):
print("{lead}{item}".format(lead=lead, item=item), end='')
if item_number % NUMBER_OF_COLUMNS == NUMBER_OF_COLUMNS - 1:
lead = ",\n" + INDENT
else:
lead = ", "
二:
table = []
row = []
for item in a:
row.append(item)
if len(row) == NUMBER_OF_COLUMNS:
table.append(INDENT + ', '.join(row))
row = []
table.append(INDENT + ', '.join(row))
print(',\n'.join(table))
三、单线:
print(',\n'.join(INDENT + ', '.join(a[i:i + NUMBER_OR_COLUMNS]) for i in range(0, len(a), NUMBER_OR_COLUMNS)))
或者也许 textwrap.fill() 会起作用:
from textwrap import fill
print(fill(', '.join(a), initial_indent=10*' ', subsequent_indent=10*' ', width=40))
所有输出(在您的示例中使用逗号 a ):
A121, A221, A321, A421, A521,
A621, A721, A821, A921
推荐阅读
- python - python 2.7拆分混淆
- javascript - 通过向它们添加事件侦听器来删除新添加的元素
- python - 为 wlst 创建一个命令
- sql - 如何在 MSSQL 上使用减法运算符在单列查询 2 个不同的 Sum 函数
- reactjs - React中如何返回值范围?
- delphi - 如何从 ListView 项中填充 ScrollBox
- javascript - 如何在javascript中检查一个数组的值到另一个数组
- c# - C#:关闭后如何在我的套接字中执行其他请求?
- ruby-on-rails - Rails 简单形式多值输入的最大长度
- c# - ASP.NET Core - Serilog 默认为记录器