首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有漂亮的打印机可以打印python数据?

有没有漂亮的打印机可以打印python数据?
EN

Stack Overflow用户
提问于 2008-09-18 11:43:45
回答 4查看 10.9K关注 0票数 20

以交互方式使用python时,有时有必要显示某种任意复杂的数据结构(如带有嵌入式列表的列表等)。默认的显示它们的方式只是一个巨大的线性转储,它一遍又一遍地包装,你必须仔细解析才能阅读它。

有没有什么东西可以让任何python对象以一种更合理的方式显示它。例如:

代码语言:javascript
复制
[0, 1,
    [a, b, c],
    2, 3, 4]

而不是:

代码语言:javascript
复制
[0, 1, [a, b, c], 2, 3, 4]

我知道这不是一个很好的例子,但我想你已经明白了。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2008-09-18 11:44:55

代码语言:javascript
复制
from pprint import pprint
a = [0, 1, ['a', 'b', 'c'], 2, 3, 4]
pprint(a)

请注意,对于像我的示例这样的简短列表,pprint实际上会在一行中打印所有内容。然而,对于更复杂的结构,它在打印数据方面做得相当好。

票数 29
EN

Stack Overflow用户

发布于 2008-09-18 12:55:40

有时候YAML可以很好地做到这一点。

代码语言:javascript
复制
import yaml
a = [0, 1, ['a', 'b', 'c'], 2, 3, 4]
print yaml.dump(a)

产生:

代码语言:javascript
复制
- 0
- 1
- [a, b, c]
- 2
- 3
- 4
票数 10
EN

Stack Overflow用户

发布于 2008-09-18 14:56:27

除了pprint.pprint之外,pprint.pformat对于制作可读的__repr__非常有用。我的复杂__repr__通常是这样的:

代码语言:javascript
复制
def __repr__(self):
    from pprint import pformat

    return "<ClassName %s>" % pformat({"attrs":self.attrs,
                                       "that_i":self.that_i,
                                       "care_about":self.care_about})
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/91810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档