Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengira Jumlah Integer Senarai Menggunakan Rekursi dalam Python?

Bagaimana untuk Mengira Jumlah Integer Senarai Menggunakan Rekursi dalam Python?

Patricia Arquette
Patricia Arquetteasal
2024-10-21 12:02:33688semak imbas

How to Calculate Sum of List Integers Using Recursion in Python?

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:

  • Keadaan Asas: Jika senarai kosong (senarai == []), jumlahnya ialah 0.
  • Langkah Rekursif: Jika senarai tidak kosong, jumlahnya ialah elemen pertama (senarai[0]) ditambah jumlah elemen yang tinggal (listSum(senarai[1: ])).

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!

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