Cara Mencipta lalai Rekursif Tahap Infinite
Dict lalai Python ialah struktur data serba boleh yang boleh digunakan untuk mencipta kamus bersarang. Walau bagaimanapun, secara lalai, lalai hanya menyediakan satu tahap sarang. Adakah terdapat cara untuk mencipta lalai yang berkelakuan sebagai kilang lalai untuk lalai dalaman, dengan berkesan mewujudkan struktur rekursif peringkat tak terhingga?
Soalan asal cuba mencapai gelagat berikut:
x = defaultdict(...stuff...) x[0][1][0] # Should return an empty dictionary {}
Dengan hanya menggunakan argumen lalai asli, tidak mungkin untuk membuat lalai rekursif bersarang tak terhingga. Penyelesaian yang popular adalah dengan menggunakan fungsi lambda:
x = defaultdict(lambda: defaultdict(dict))
Pendekatan ini mencipta lalai yang menghasilkan lalai baharu apabila mengakses kunci yang hilang. Ini dengan berkesan menyediakan tahap sarang yang tidak terhingga.
Kelebihan Pendekatan Berasaskan Lambda:
Nota:
Ingkar tak terhingga bersarang menggunakan lambda mempunyai ciri-ciri berikut:
Atas ialah kandungan terperinci Bagaimana untuk Membuat lalai Infinitely-Nested dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!