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
Barbara Streisandasal
2024-11-28 06:30:11194semak imbas

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

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)

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

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!

Kenyataan:
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