我可以强制 pprint 每行打印一定数量的元素而不是宽度吗?

Can I force pprint to print a set number of elements per line instead of width?

我有一个值列表,并希望以这样的方式打印它,即在一定数量的元素后 pprint 强制换行。我正在处理动态数据集,无法预测每条新的所需线的宽度。元素本身完全是字符串,代表一个布尔值。这是想要的效果:

[ o x x x o
  x o x x x
  x x o x o
  x o x o x 
  x x x x o ]

您可以使用 textwrap。具体细节将取决于您的代码和您想要的内容,但这是一个示例:

import random
import textwrap

some_booleans = [
    random.choice([True, False]) for _ in range(30)
]

stringified = ''.join('x' if elem else 'o' for elem in some_booleans)
adjusted_lines = textwrap.wrap(stringified, width=10)
to_print = '\n'.join(adjusted_lines)

print(to_print)

输出:

oxoxoxoxxo
xxxxooxooo
xxxxoxxxoo