示例:
複製** **如下:
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 將構造方法初始...