Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana Saya Boleh Meratakan Kamus Bersarang dalam Python?

Bagaimana Saya Boleh Meratakan Kamus Bersarang dalam Python?

Patricia Arquette
Lepaskan: 2024-12-17 00:59:24
asal
868 orang telah melayarinya

How Can I Flatten a Nested Dictionary in Python?

Merungkai Kerumitan: Meratakan Kamus Bersarang

Andaikan anda menemui kamus rumit dengan aras bersarang, mencerminkan struktur kusut labirin. Untuk merentasi kamus ini, seseorang mesti menggunakan teknik yang bijak untuk meratakannya, membongkar lapisan rumitnya ke dalam bentuk yang dipermudahkan. Penyampaian yang dipermudahkan ini mendedahkan data asas dengan cara yang lebih mudah diakses dan mudah.

Kunci kepada pemudahan ini terletak pada lelaran pada kedua-dua kunci dan nilai kamus. Melalui proses ini, kekunci baharu dibina dengan teliti dengan menggabungkan kunci induk dengan kunci semasa, dipisahkan oleh pembatas yang boleh disesuaikan.

Jika nilai itu sendiri menjadi kamus, proses perataan digunakan secara rekursif, menggabungkan dengan lancar unsur-unsurnya ke dalam struktur yang diratakan. Walau bagaimanapun, jika nilai itu bukan kamus, ia dilampirkan terus pada kamus yang diratakan.

Pada dasarnya, nilai-nilai yang terkandung dalam web rumit kamus bersarang diekstrak dengan teliti dan dihiasi dengan kunci yang baru diberikan, mencerminkan mereka hubungan hierarki. Hasilnya ialah kamus yang diratakan, serupa dengan peta yang tersusun rapi, di mana setiap nilai boleh didapati dengan mudah dengan kunci uniknya yang baru ditetapkan.

Untuk menggambarkan lagi teknik merata ini, pertimbangkan contoh berikut:

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)
Salin selepas log masuk

Apabila digunakan pada kamus seperti:

{'a': 1, 'c': {'a': 2, 'b': {'x': 5, 'y' : 10}}, 'd': [1, 2, 3]}
Salin selepas log masuk

Hasilnya adalah diratakan kamus:

{'a': 1, 'c_a': 2, 'c_b_x': 5, 'd': [1, 2, 3], 'c_b_y': 10}
Salin selepas log masuk

Menggunakan teknik merata ini, seseorang secara berkesan membongkar kerumitan kamus bersarang, mendedahkan struktur tersembunyi di dalamnya. Perwakilan diperkemas ini memperkasakan pembangun dengan format data yang lebih mudah diakses dan terurus, memudahkan tugas seperti analisis data, pertanyaan dan manipulasi data.

Atas ialah kandungan terperinci Bagaimana Saya Boleh Meratakan Kamus Bersarang dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan