如何强制pprint每行打印一个列表/元组/字典元素?

12 投票
2 回答
8922 浏览
提问于 2025-04-17 19:53

我想知道怎么让pprint()这个函数把列表、元组或字典里的每个元素都打印在单独的一行上?

>>> from pprint import pprint
>>> my_var = ['one', 'two', ('red','green'), {'state' : 'Oregon', 'city' : 'Portland'}]
>>> pprint(my_var)
['one', 'two', ('red', 'green'), {'city': 'Portland', 'state': 'Oregon'}]

我希望输出的结果看起来像这样:

['one',
 'two',
 ('red',
  'green'),
 {'city': 'Portland',
  'state': 'Oregon'}]

2 个回答

0

我使用:

print(json.dumps(mydict, 
         indent=2).replace('true','True').replace('false','False'))

否则,json会把布尔值(真或假)转换成小写字母。当然,如果这些关键词是其他字符串的一部分,那就不太好用了!这个时候可以用正则表达式来替换。

11

在使用 pprint() 函数时,可以加一个 width=1 的参数:

>>> from pprint import pprint
>>> my_var = ['one', 'two', ('red','green'), {'state' : 'Oregon', 'city' : 'Portland'}]
>>> pprint(my_var, width=1)
['one',
 'two',
 ('red',
  'green'),
 {'city': 'Portland',
  'state': 'Oregon'}]
>>>

“pprint - 数据美化打印机” 的文档

撰写回答