Python構造自定義方法來美化字典結構輸出的示例

2022-10-04 21:45:47 字數 1037 閱讀 8553

示例:

複製** **如下:

d = , "folder1": , "subfolder2": } } }

美觀輸出是:

觀察一下特點:

1.同一level的key左對齊,即indent相同。

2.在,號後換行。

3.如果value是字典,即巢狀字典,則巢狀字典在下乙個level,每乙個level的key的indent都不一樣。

思路分析:

這是個"拼接字串"問題,元素有""{}:,\n和空格indent。

遍歷乙個個(k, v)鍵值對,拼接yield起來,遇到巢狀字典就遞迴,即遞迴+yield。

上**。

#coding=utf-8

def pretty_dict(程式設計客棧obj, indent=' '):

def _pretty(obj, indent):

for i, tup in enumerate(obj.items()):

k, v = tup

#如果是字串則拼上""

if isinstance(kwww.cppcns.com, basestring): k = '"%s"'% k

if isinstance(v, basestring): v = '"%s"'% v

#如果是字典則遞迴

if isinstance(v, dict):

v = ''.join(_pretty(v, indent + ' '* len(str(k) + ': '% (k, v)

else:

yield ''% ( k, v)

else:#中間

yield '%s%s: %s,\n'% (indent, k, v)

print ''.join(_pretty(obj, indent))

d = , "folder1": , "subfolder2": } } }

pretty_dict(d)

本文標題: python構造自定義方法來美化字典結構輸出的示例

本文位址:

自定義view的構造方法

首先view有三個構造方法,如下 第乙個構造方法很簡單,就是通過 建立時才使用。下面主要詳細介紹第二個和第三個。它的說明也就是 當我從xml中載入view的時候,這個構造器才會被呼叫。其第二個引數中就包含自定義的屬性。接下來講解自定義屬性 自定義屬性用法第一步 在value資料夾中新建乙個xml檔案...

自定義內建方法來定製類的功能

1 str 方法 在物件被列印時,自動觸發,應該在該方法內採集與物件self有關的資訊,然後拼成字串返回 class people def init self,name,age self.name name self.age age def str self print return self.na...

OC中重寫構造方法及自定義構造方法

構造方法 用來初始化物件的方法 如 person p person alloc init alloc用來分配記憶體空間 init初始化,也就是oc中的構造方法 重寫構造方法 instancetype init if self super init age 18 return self 將構造方法初始...