Rumah > pembangunan bahagian belakang > Tutorial Python > Cara Selamat Mengakses Nilai Kamus Bersarang dalam Python

Cara Selamat Mengakses Nilai Kamus Bersarang dalam Python

Barbara Streisand
Lepaskan: 2024-10-18 13:06:30
asal
340 orang telah melayarinya

How to Safely Access Nested Dictionary Values in Python

Mengakses Selamat Nilai Kamus Bersarang

Dalam Python, mendapatkan semula nilai daripada kamus bersarang kadangkala boleh membawa kepada pengecualian jika kunci tidak wujud. Artikel ini meneroka pelbagai kaedah untuk mengakses nilai ini dengan selamat.

Menggunakan Pengendalian Pengecualian Try-Catch

Pendekatan tradisional melibatkan pembalut operasi akses dalam blok cuba-kecuali. Jika kunci yang hilang ditemui, pengecualian akan dikendalikan dan kod itu meneruskan pelaksanaan:

<code class="python">try:
    example_dict['key1']['key2']
except KeyError:
    pass</code>
Salin selepas log masuk

Walau bagaimanapun, kaedah ini memerlukan pengulangan semakan kunci untuk setiap peringkat bersarang, yang boleh menjadi menyusahkan.

Merantai panggilan get()

Python menyediakan kaedah get() untuk kamus, yang mengembalikan nilai yang dikaitkan dengan kunci atau Tiada jika kunci tidak wujud. Kaedah ini boleh dirantai beberapa kali untuk mengakses nilai bersarang dengan selamat:

<code class="python">example_dict.get('key1', {}).get('key2')</code>
Salin selepas log masuk

Pendekatan ini mengembalikan Tiada jika mana-mana kunci perantaraan tiada, tetapi ia masih boleh menimbulkan AttributeError jika nilai yang dikaitkan dengan kunci ialah bukan kamus atau objek seperti dict dengan kaedah get().

Menggunakan Resipi Hasher

Untuk mengelakkan kedua-dua KeyErrors dan AttributeErrors, seseorang boleh melaksanakan Hasher resipi, yang mencipta kelas tersuai yang mewarisi daripada dict dan mengatasi kaedah __missing__():

<code class="python">class Hasher(dict):
    def __missing__(self, key):
        value = self[key] = type(self)()
        return value</code>
Salin selepas log masuk

Dengan kelas ini, kunci yang hilang akan sentiasa mengembalikan Hasher kosong, membenarkan navigasi selamat melalui struktur bersarang:

<code class="python">example_dict = Hasher()
print(example_dict['key1']['key2'])  # {}</code>
Salin selepas log masuk

Fungsi Safeget Helper

Akhir sekali, seseorang boleh mencipta fungsi pembantu yang menyembunyikan kerumitan pengambilan nilai selamat:

<code class="python">def safeget(dct, *keys):
    for key in keys:
        try:
            dct = dct[key]
        except KeyError:
            return None
    return dct</code>
Salin selepas log masuk

Fungsi ini memudahkan sintaks akses, mengurangkan kekacauan kod:

<code class="python">safeget(example_dict, 'key1', 'key2')</code>
Salin selepas log masuk

Kesimpulannya, walaupun Python tidak menyediakan kaedah terbina dalam untuk mengakses nilai kamus bersarang dengan selamat, teknik yang dibentangkan menawarkan pelbagai pilihan untuk menangani kehilangan kunci dan menghalang pengecualian pengendalian overhed.

Atas ialah kandungan terperinci Cara Selamat Mengakses Nilai Kamus Bersarang dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
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