一行 Python 程式碼搞定一棵樹

發表於2012-04-24

英文原文:Github,翻譯:oschina

使用 Python 內建的 defaultdict 方法可以輕鬆定義一個樹的資料結構。

簡單的說樹也可以是一個字典資料結構

這就是全部,就一行程式碼。

如果你繼續下面的程式碼,需要先引入

例項

JSON-esque

現在我們建立一個 JSON-esque 巢狀字典無需顯式的建立子字典:


然後可通過 <code>print(json.dumps(users))</code> 來列印 JSON 資料,結果如下:

無需賦值

我們不需要通過賦值就可以建立結構:

要列印有好的資訊,需要轉成標準的字典物件:

現在可通過 pprint(dicts(taxonomy)) 進行列印了:

子結構也被當作是字典物件了,而葉子節點是一個空的字典物件

迭代

可以使用有趣的方法對樹進行迭代。

例如我們解析一個動物的列表並新增到之前定義的 taxonomy 中,我們可以使用如下程式碼:

簡化實現:

我們仍然無需賦值:

結論

上面提及的這些可能用處不大,只是做了一些有意思的程式碼。

如果你喜歡 Python 的話,把這個當成是樂趣來理解。

 

相關文章