Bagaimana untuk Membina Kamus Berbilang Aras dengan Kedalaman Pembolehubah Diberi Senarai Bersarang?

Patricia Arquette
Lepaskan: 2024-10-17 11:10:30
asal
182 orang telah melayarinya

How to Construct a Multi-Level Dictionary with Variable Depth Given a Nested List?

Membina Kamus Pelbagai Aras dengan Kedalaman Yang Berbeza

Soalan:

Bagaimanakah seseorang boleh membina kamus pelbagai peringkat dengan kedalaman berubah-ubah, diberikan senarai nilai bersarang? Pertimbangkan senarai contoh berikut:

<code>[A][B1][C1] = 1
[A][B1][C2] = 2
[A][B2] = 3
[D][E][F][G] = 4</code>
Salin selepas log masuk

Output yang dikehendaki ialah kamus berbilang peringkat yang menyerupai struktur berikut:

<code>A
--B1
-----C1 = 1
-----C2 = 1
--B2 = 3
D
--E
----F
------G = 4</code>
Salin selepas log masuk

Penyelesaian:

Menggunakan defaultdict daripada modul collections, seseorang boleh mencipta kamus bersarang secara dinamik tanpa memerlukan pernyataan sisipan pengekodan keras. defaultdict mengembalikan nilai lalai apabila kunci sedia ada tidak ditemui. Begini cara ia boleh dilaksanakan:

<code class="python">from collections import defaultdict

# Define a function to create a nested dictionary with any level of depth
nested_dict = lambda: defaultdict(nested_dict)

# Create the nested dictionary using the nested_dict function
nest = nested_dict()

# Populate the nested dictionary with the given data
nest[0][1][2][3][4][5] = 6

print(nest)</code>
Salin selepas log masuk

Kod ini akan mencipta kamus bersarang dengan kedalaman 7, di mana nilai untuk kunci [0][1][2][3][4][5] ditetapkan kepada 6. Kamus bersarang boleh diakses menggunakan struktur utama yang sama, membolehkan penciptaan dinamik dan mendapatkan semula data pada pelbagai peringkat.

Atas ialah kandungan terperinci Bagaimana untuk Membina Kamus Berbilang Aras dengan Kedalaman Pembolehubah Diberi Senarai Bersarang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!