Cara Memotong Daftar dengan Python (Indeks, Langkah, & Pembalikan)

Pelajari cara mengiris daftar dengan Python menggunakan sintaks braket yang kuat. Kuasai argumen mulai, berhenti, dan langkah, pengindeksan negatif, dan daftar pembalikan.

Coba Solusi ini di Editor

Ikhtisar

Slicing adalah salah satu fitur Python yang paling intuitif dan kuat, memungkinkan Anda mengekstrak subset dari daftar, tuple, atau string dengan sintaksis yang bersih dan ringkas. Daripada menulis loop verbose untuk menyalin elemen tertentu dari daftar, notasi irisan Python memungkinkan Anda menentukan rentang indeks di dalam tanda kurung siku.

Sintaks lengkap untuk pemotongan daftar adalah `daftar_saya[mulai:berhenti:langkah]`. Indeks `start` bersifat inklusif, indeks `stop` bersifat eksklusif, dan `langkah` menentukan kenaikan antar elemen (defaultnya adalah 1). Jika Anda menghilangkan `start`, Python secara default berada di awal daftar. Jika Anda menghilangkan `stop`, Python secara default berada di akhir daftar. Hal ini membuat ekstraksi bagian dari koleksi menjadi sangat ekspresif.

Slicing juga sangat serbaguna karena mendukung indeks negatif. Indeks awal atau akhir yang negatif dihitung mundur dari akhir daftar (dengan `-1` mewakili item terakhir). Dengan menetapkan nilai langkah negatif, seperti `daftar_saya[::-1]`, Anda dapat dengan cepat mengambil salinan daftar yang dibalik. Memahami rentang irisan sangat penting untuk ekstraksi data yang bersih.

Kode & Output Eksekusi

Skrip ini mendemonstrasikan pemotongan daftar menggunakan start, stop, rentang langkah, pengindeksan negatif, dan pembalikan daftar yang berbeda.

list_slicing.py
Coba di Editor
numbers = [0, 10, 20, 30, 40, 50, 60, 70, 80]

# 1. Basic slicing: elements from index 2 up to (but excluding) 6
subset = numbers[2:6]
print("Subset [2:6]:", subset)

# 2. Omitting indices: start to index 4, and index 5 to end
first_five = numbers[:5]
last_four = numbers[5:]
print("First five [:5]:", first_five)
print("Last four [5:]:", last_four)

# 3. Using a step parameter: get every second element
every_second = numbers[::2]
print("Every second [::2]:", every_second)

# 4. Negative indexing: get the last three elements
last_three = numbers[-3:]
print("Last three [-3:]:", last_three)

# 5. Reverse the list using step=-1
reversed_numbers = numbers[::-1]
print("Reversed list [::-1]:", reversed_numbers)
Keluaran Terminal
Subset [2:6]: [20, 30, 40, 50]
First five [:5]: [0, 10, 20, 30, 40]
Last four [5:]: [50, 60, 70, 80]
Every second [::2]: [0, 20, 40, 60, 80]
Last three [-3:]: [60, 70, 80]
Reversed list [::-1]: [80, 70, 60, 50, 40, 30, 20, 10, 0]

Implementasi Langkah demi Langkah

  • Gunakan list[start:stop] untuk mengekstrak elemen dari awal indeks hingga, tetapi tidak termasuk, berhenti.
  • Hilangkan indeks awal atau akhir (misalnya, daftar[:4] atau daftar[4:]) untuk memotong dari batas daftar.
  • Berikan argumen ketiga di dalam braket list[::step] untuk melewati elemen secara berkala.
  • Gunakan indeks negatif untuk menghitung mundur elemen dari akhir koleksi.

Pertanyaan yang Sering Diajukan

Apakah pemotongan mengubah daftar asli?

Tidak, pemotongan daftar mengembalikan salinan dangkal dari rentang yang diminta, sehingga daftar asli tidak berubah sama sekali.

Apa yang terjadi jika indeks irisan berada di luar batas?

Tidak seperti mengakses satu indeks yang memunculkan IndexError, pemotongan bersifat memaafkan dan hanya membatasi rentang pada batas daftar, mengembalikan daftar kosong jika tidak ada elemen yang termasuk dalam rentang tersebut.

Topik Terkait

Sumber Daya Python yang Direkomendasikan

Perluas pengetahuan Anda dengan tutorial interaktif terkait, lembar contekan, dan perbandingan kode.