Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Saya Mendapat IndexError Apabila Menjumlahkan Nilai Senarai dalam Python?

Mengapa Saya Mendapat IndexError Apabila Menjumlahkan Nilai Senarai dalam Python?

Patricia Arquette
Patricia Arquetteasal
2024-11-01 18:12:30913semak imbas

Why Am I Getting an IndexError When Summing List Values in Python?

Memahami Pengindeksan Array dalam Python

Apabila cuba menjumlahkan nilai senarai menggunakan gelung for, seseorang mungkin menghadapi Ralat Indeks sebagai hasil daripada menggunakan pengindeksan tatasusunan secara salah. Tujuan artikel ini adalah untuk menjelaskan sebab asas bagi ralat tersebut dan memberikan panduan tentang cara membetulkannya.

Gelung for dalam coretan kod yang disediakan sedang cuba mengakses elemen tatasusunan ar dengan menggunakan ar[ i] sebagai ungkapannya. Walau bagaimanapun, pembolehubah gelung i mewakili elemen semasa senarai, bukan indeks. Oleh itu, pernyataan ar[i] akan cuba mengakses elemen pada nilai khusus itu, membawa kepada IndexError apabila nilai i melebihi had tatasusunan.

Untuk menyelesaikan isu ini, seseorang harus menggunakan nilai i sebagai indeks ke dalam tatasusunan. Gelung yang diubah suai di bawah membetulkan ralat ini:

<code class="python">for i in ar:
    theSum += i</code>

Sebagai alternatif, seseorang juga boleh menggunakan fungsi terbina dalam Python untuk kod yang lebih ringkas:

<code class="python">theSum = sum(ar)</code>

Untuk menggunakan pengindeksan tatasusunan secara eksplisit, seseorang boleh menggunakan fungsi range() untuk menjana indeks yang sah:

<code class="python">for i in range(len(ar)):
    theSum += ar[i]</code>

Dengan mematuhi prinsip ini, seseorang boleh mengelakkan IndexingErrors dan menulis kod Python yang boleh dipercayai dan cekap.

Atas ialah kandungan terperinci Mengapa Saya Mendapat IndexError Apabila Menjumlahkan Nilai Senarai 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