首頁 > 後端開發 > Python教學 > 如何在 Python 中展平嵌套字典?

如何在 Python 中展平嵌套字典?

Patricia Arquette
發布: 2024-12-17 00:59:24
原創
868 人瀏覽過

How Can I Flatten a Nested Dictionary in Python?

揭開複雜性:扁平化嵌套字典

假設您遇到一個具有嵌套層級的複雜字典,反映了迷宮的錯綜複雜的結構。要遍歷這本字典,必須採用一種巧妙的技術將其扁平化,將其複雜的層次分解為簡化的形式。這種簡化的呈現以更容易存取和更直接的方式揭示了底層資料。

這種簡化的關鍵在於迭代字典的鍵和值。透過這個過程,透過將父鍵與當前鍵連接起來並用可自訂的分隔符號分隔來精心構造新鍵。

如果數值本身恰好是字典,則遞歸應用扁平化過程,無縫合併將其元素融入扁平結構中。但是,如果該值不是字典,則會直接附加到扁平字典中。

本質上,複雜的巢狀字典網路中包含的值被精心提取並用新分配的鍵裝飾,反映了它們的值等級關係。結果是一個扁平化的字典,類似於組織整齊的地圖,其中每個值都可以透過其唯一的、新分配的鍵輕鬆定位。

為了進一步說明這種扁平化技術,請考慮以下範例:

from collections.abc import MutableMapping

def flatten(dictionary, parent_key='', separator='_'):
    items = []
    for key, value in dictionary.items():
        new_key = parent_key + separator + key if parent_key else key
        if isinstance(value, MutableMapping):
            items.extend(flatten(value, new_key, separator=separator).items())
        else:
            items.append((new_key, value))
    return dict(items)
登入後複製

當應用於字典時:

{'a': 1, 'c': {'a': 2, 'b': {'x': 5, 'y' : 10}}, 'd': [1, 2, 3]}
登入後複製

結果是扁平化的字典:

{'a': 1, 'c_a': 2, 'c_b_x': 5, 'd': [1, 2, 3], 'c_b_y': 10}
登入後複製

利用這種扁平化技術,可以有效地揭示嵌套字典的複雜性,揭示其中隱藏的結構。這種簡化的表示方式使開發人員能夠獲得更易於存取和管理的資料格式,從而促進資料分析、查詢和資料操作等任務。

以上是如何在 Python 中展平嵌套字典?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板