Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Mencetak Pasangan Nilai Kunci secara Rekursif daripada Kamus Bersarang dalam Python?

Bagaimanakah Saya Boleh Mencetak Pasangan Nilai Kunci secara Rekursif daripada Kamus Bersarang dalam Python?

Barbara Streisand
Lepaskan: 2024-11-28 06:30:11
asal
292 orang telah melayarinya

How Can I Recursively Print Key-Value Pairs from a Nested Dictionary in Python?

Merentasi Kamus Bersarang

Dalam masalah ini, anda mempunyai kamus bersarang dan mahu mencetak semua pasangan nilai kunci di mana nilainya tidak sebuah kamus. Selain itu, anda perlu merentasi mana-mana kamus bersarang dan mencetak pasangan nilai kunci mereka secara rekursif.

Anda boleh mencuba penyelesaian dengan berbilang gelung bersarang, tetapi pendekatan ini tidak akan berskala apabila anda menghadapi lebih banyak tahap bersarang. Kuncinya ialah menggunakan rekursi.

Penyelesaian Rekursif

  1. Tentukan fungsi myprint yang mengambil kamus sebagai input.
  2. Dalam fungsi:

    • Lelaran nilai kunci kamus berpasangan.
    • Jika nilai semasa ialah kamus, panggil myprint secara rekursif pada kamus tersebut.
    • Jika nilai itu bukan kamus, cetak pasangan nilai kunci dalam format yang diingini.

Ini adalah pelaksanaan:

def myprint(d):
    for k, v in d.items():
        if isinstance(v, dict):
            myprint(v)
        else:
            print("{} : {}".format(k, v))
Salin selepas log masuk

Penggunaan

Untuk menggunakan penyelesaian rekursif ini, hanya hantar kamus bersarang anda ke fungsi myprint. Contohnya:

d = {
    'xml': {
        'config': {
            'portstatus': {'status': 'good'},
            'target': '1'
        },
        'port': '11'
    }
}
myprint(d)
Salin selepas log masuk

Output

xml : {'config': {'portstatus': {'status': 'good'}, 'target': '1'}, 'port': '11'}
config : {'portstatus': {'status': 'good'}, 'target': '1'}
portstatus : {'status': 'good'}
status : good
target : 1
port : 11
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencetak Pasangan Nilai Kunci secara Rekursif daripada 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