Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Mengakses dan Mencetak Nilai secara Rekursif daripada Kamus Bersarang?

Bagaimanakah Saya Boleh Mengakses dan Mencetak Nilai secara Rekursif daripada Kamus Bersarang?

Barbara Streisand
Lepaskan: 2024-12-06 04:20:13
asal
692 orang telah melayarinya

How Can I Recursively Access and Print Values from a Nested Dictionary?

Mengakses Nilai Kamus Bersarang Secara Rekursif

Apabila bekerja dengan kamus bersarang, selalunya perlu untuk mengulangi semua pasangan nilai kunci untuk mengekstrak data tertentu. Masalah ini timbul apabila cuba menggelung kamus dan mendapatkan semula semua nilai kamus tidak bersarang sambil mengakses nilai kamus bersarang secara rekursif.

Percubaan pertama menggunakan lelaran hanya berfungsi untuk dua peringkat pertama disebabkan skop terhad bagi gelung dalam. Percubaan kedua juga gagal merentasi kamus sepenuhnya kerana pelaksanaannya yang statik.

Untuk mengatasi had ini, rekursi diperlukan. Dengan mentakrifkan fungsi untuk mencetak nilai kamus, anda boleh memanggil fungsi secara rekursif pada mana-mana kamus bersarang untuk mengakses nilainya.

Berikut ialah contoh penyelesaian rekursif:

def myprint(d):
    for k, v in d.items():
        if isinstance(v, dict):
            myprint(v)  # Recurs if value is a dictionary
        else:
            print("{0} : {1}".format(k, v))
Salin selepas log masuk

Penyelesaian ini bermula dengan lelaran melalui pasangan nilai kunci kamus input. Untuk setiap pasangan nilai kunci, ia menyemak sama ada nilai itu ialah kamus. Jika ya, ia secara rekursif memanggil fungsi myprint dengan kamus bersarang sebagai parameter. Jika nilai itu bukan kamus, ia hanya mencetak pasangan nilai kunci.

Dengan menggunakan rekursi, penyelesaian ini boleh merentasi sebarang bilangan peringkat kamus bersarang untuk mengakses dan mencetak semua nilai kamus tidak bersarang.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses dan Mencetak Nilai secara Rekursif daripada Kamus Bersarang?. 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