Rumah >pembangunan bahagian belakang >Tutorial Python >Bolehkah defaultdict secara Rekursif Berkhidmat sebagai Nilai Lalai Sendiri untuk Infinite Nesting?

Bolehkah defaultdict secara Rekursif Berkhidmat sebagai Nilai Lalai Sendiri untuk Infinite Nesting?

Susan Sarandon
Susan Sarandonasal
2024-11-28 02:35:12480semak imbas

Can a defaultdict Recursively Serve as its Own Default Value for Infinite Nesting?

Mencipta lalai Infinitely Nested of defaultdict

Soalan:

Adakah mungkin untuk membuat defaultdict yang juga berfungsi sebagai nilai lalai untuk dirinya sendiri, menghasilkan lalai rekursif peringkat tak terhingga? Matlamatnya adalah untuk membolehkan akses kepada elemen bersarang dalam tanpa menghadapi pengecualian KeyError.

Jawapan:

Sementara jawapan lain menangani penciptaan lalai bersarang "infinitely many", mereka mengabaikan keperluan khusus untuk lalai dua mendalam. Untuk mencapai matlamat ini, kod berikut boleh digunakan:

defaultdict(lambda: defaultdict(dict))

Konstruk ini memberikan kelebihan berikut:

  • Kejelasan: Ia lebih mudah dan boleh difahami daripada pendekatan rekursif.
  • Daun Boleh Disesuaikan: Ia membolehkan penyesuaian nilai "daun" lalai diklat menjadi sesuatu selain daripada kamus, seperti senarai atau set.

Contoh:

x = defaultdict(lambda: defaultdict(dict))
x[0][1][0]
{}  # returns an empty dictionary

Atas ialah kandungan terperinci Bolehkah defaultdict secara Rekursif Berkhidmat sebagai Nilai Lalai Sendiri untuk Infinite Nesting?. 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