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>
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>
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>
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!