Memahami Rekursi dalam Python: Menjumlahkan Integer Senarai
Rekursi ialah teknik pengaturcaraan di mana fungsi memanggil dirinya berulang kali untuk menyelesaikan kejadian masalah yang lebih kecil sehingga keadaan asas dicapai. Dalam Python, kita boleh menggunakan rekursi pada pelbagai tugas, termasuk mengira jumlah integer senarai.
Fungsi Rekursif: listSum
Untuk menentukan senarai fungsi rekursif yang mengambil senarai daripada integer dan mengembalikan jumlahnya, kita boleh memecahkan masalah seperti berikut:
Versi Mudah:
<code class="python">def listSum(ls): # Base condition if not ls: return 0 # First element + result of calling `listsum` with rest of the elements return ls[0] + listSum(ls[1:])</code>
Rekursi Panggilan Ekor:
Untuk meningkatkan kecekapan , kita boleh menghantar jumlah semasa kepada parameter fungsi:
<code class="python">def listSum(ls, result): # Base condition if not ls: return result # Call with next index and add the current element to result return listSum(ls[1:], result + ls[0])</code>
Melalui Versi Indeks:
Untuk mengelak daripada mencipta senarai perantaraan, kita boleh melepasi indeks elemen semasa:
<code class="python">def listSum(ls, index, result): # Base condition if index == len(ls): return result # Call with next index and add the current element to result return listSum(ls, index + 1, result + ls[index])</code>
Versi Fungsi Dalaman:
Untuk memudahkan kod, kita boleh mentakrifkan fungsi dalaman rekursif:
<code class="python">def listSum(ls): def recursion(index, result): # Base condition if index == len(ls): return result # Call with next index and add the current element to result return recursion(index + 1, result + ls[index]) return recursion(0, 0)</code>
Versi Parameter Lalai:
Menggunakan parameter lalai, kami boleh memudahkan lagi:
<code class="python">def listSum(ls, index=0, result=0): # Base condition if index == len(ls): return result # Call with next index and add the current element to result return listSum(ls, index + 1, result + ls[index])</code>
Atas ialah kandungan terperinci Bagaimana untuk Mengira Jumlah Integer Senarai Menggunakan Rekursi dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!