Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana Mencetak Semua Nilai secara Rekursif daripada Kamus Bersarang dalam Python?
Memandangkan kamus bersarang, tugasnya adalah untuk merentasi semua pasangan nilai utamanya, mencetak nilai yang bukan kamus bersarang. Untuk kamus bersarang, traversal harus diteruskan secara rekursif untuk mencetak pasangan nilai kunci mereka.
Menggunakan rekursi, fungsi boleh ditakrifkan untuk melaksanakan tugas ini:
def myprint(d): for k, v in d.items(): if isinstance(v, dict): myprint(v) else: print("{0} : {1}".format(k, v))
Fungsi ini menerima kamus sebagai hujah dan berulang melalui pasangan nilai kuncinya. Jika nilai bukan kamus bersarang, ia mencetak pasangan nilai kunci. Jika nilai ialah kamus, ia secara rekursif memanggil fungsi myprint dengan kamus baharu ini.
Pertimbangkan kamus berikut:
d = { "xml": { "config": { "portstatus": {"status": "good"}, "target": "1" }, "port": "11" } }
Memanggil fungsi myprint akan output:
xml : {config: {portstatus: {status: good}, target: 1}, port: 11} config : {portstatus: {status: good}, target: 1} portstatus : {status: good} target : 1 port : 11
Penyelesaian ini menyediakan mekanisme rekursif untuk menggelungkan semua nilai kamus bersarang dan mencetaknya sebagai dikehendaki.
Atas ialah kandungan terperinci Bagaimana Mencetak Semua Nilai secara Rekursif daripada Kamus Bersarang dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!