python逐行打印_如何用Python逐行打印字典?

本文介绍了两种方法来逐行打印Python中的字典和列表,特别是处理深度嵌套的数据结构。提供了dumpclean和dump两个函数,它们能够递归地遍历并打印对象,使输出更具可读性。对于复杂的数据结构,如包含嵌套字典和列表的对象,这两个函数都能有效地展示其内容。
摘要由CSDN通过智能技术生成

处理任意深度嵌套的dict和list的更通用的解决方案是:def dumpclean(obj):

if isinstance(obj, dict):

for k, v in obj.items():

if hasattr(v, '__iter__'):

print k

dumpclean(v)

else:

print '%s : %s' % (k, v)

elif isinstance(obj, list):

for v in obj:

if hasattr(v, '__iter__'):

dumpclean(v)

else:

print v

else:

print obj

这将产生输出:A

color : 2

speed : 70

B

color : 3

speed : 60

我遇到了类似的需求,并开发了一个更健壮的函数作为自己的练习。我把它放在这里,以防对别人有价值。在运行nosetest时,我还发现能够在调用中指定输出流以便可以使用sys.stderr也很有帮助。import sys

def dump(obj, nested_level=0, output=sys.stdout):

spacing = ' '

if isinstance(obj, dict):

print >> output, '%s{' % ((nested_level) * spacing)

for k, v in obj.items():

if hasattr(v, '__iter__'):

print >> out

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值