Mencipta lalai Rekursif Tahap Infinite
Dalam Python, defaultdict ialah alat serba boleh yang menyediakan nilai lalai untuk kekunci yang hilang dalam kamus. Walau bagaimanapun, adakah mungkin untuk mencipta lalai rekursif peringkat tak terhingga? Ini bermakna mencipta lalai di mana nilai lalai juga merupakan lalai, dengan berkesan mencipta lalai bersarang.
Pada mulanya, seseorang mungkin menjangkakan bahawa x = defaultdict(defaultdict) akan mencipta lalai dua peringkat, tetapi mengakses x[0 ][0] menghasilkan KeyError. Untuk mencapai rekursi tahap tak terhingga, pendekatan alternatif diperlukan.
Satu penyelesaian ialah menggunakan fungsi lambda sebagai nilai lalai:
x = defaultdict(lambda: defaultdict(dict))
Ini mewujudkan lalai di mana nilai lalai adalah fungsi yang mengembalikan lalai lain dengan kamus sebagai nilai lalainya. Ini membenarkan pengulangan tahap tak terhingga, kerana mengakses x[0][1][0] mencipta kamus kosong dalam lalai bersarang.
Berbanding dengan kaedah rekursif yang dibentangkan dalam jawapan lain, pendekatan ini menawarkan beberapa kelebihan :
Atas ialah kandungan terperinci Bagaimanakah saya Boleh Mencipta lalai Rekursif Tahap Infinite dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!