Python List index() – Cara Mencari Posisi Elemen dengan Contoh Praktis
Daftar Python adalah koleksi terurut yang dapat menampung item dari tipe data apa pun—bilangan bulat, string, boolean, daftar bersarang, dan lainnya. Metode bawaan list.index() adalah cara tercepat untuk menemukan posisi elemen dalam urutan tersebut. Di bawah Anda akan menemukan panduan langkah demi langkah, lengkap dengan cuplikan kode dan teknik alternatif untuk mengambil indeks, bahkan ketika elemen muncul lebih dari sekali.
Memahami list.index()
Metode list.index() mengembalikan indeks terendah di mana nilai tertentu muncul. Jika nilai tidak ada, ia memicu ValueError. Untuk referensi, lihat dokumentasi Python resmi.
Sintaks
list.index(element, start=0, end=len(list))
Parameter
| Parameter | Deskripsi |
element | Nilai yang ingin Anda cari. |
start | Opsional. Mulai mencari dari indeks ini. Default adalah 0. |
end | Opsional. Berhenti mencari sebelum indeks ini. Default adalah panjang daftar. |
Nilai Kembali
Mengembalikan indeks bilangan bulat dari elemen yang cocok pertama kali. Memicu ValueError jika elemen tidak ada.
Contoh: Penggunaan Dasar
my_list = ['A', 'B', 'C', 'D', 'E', 'F'] print("Index of 'C':", my_list.index('C')) # 2 print("Index of 'F':", my_list.index('F')) # 5 Contoh: Menggunakan start dan end
my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'] print("Index of 'C' between 1 and 5:", my_list.index('C', 1, 5)) # 2 print("Index of 'F' between 3 and 7:", my_list.index('F', 3, 7)) # 5 print("Index of 'D' starting from 1:", my_list.index('D', 1)) # 3 Contoh: Elemen Tidak Ditemukan
my_list = ['A', 'B', 'C', 'D'] try: my_list.index('Z') except ValueError as e: print(e) # 'Z' is not in list Mengambil Semua Indeks untuk Elemen yang Berulang
Ketika nilai muncul beberapa kali, list.index() hanya mengembalikan posisi pertama. Di bawah ini beberapa pendekatan untuk menangkap setiap indeks.
Menggunakan Loop For
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] indices = [] for i, val in enumerate(my_list): if val == 'Guru': indices.append(i) print(indices) # [0, 3, 6]
Menggunakan Loop While dengan index()
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] indices = [] next_index = -1 while True: try: next_index = my_list.index('Guru', next_index + 1) indices.append(next_index) except ValueError: break print(indices) # [0, 3, 6] List Comprehension
indices = [i for i, val in enumerate(my_list) if val == 'Guru'] print(indices) # [0, 3, 6]
Menggunakan enumerate()
indices = [i for i, val in enumerate(my_list) if val == 'Guru'] print(indices) # [0, 3, 6]
Menggunakan filter()
indices = list(filter(lambda i: my_list[i] == 'Guru', range(len(my_list)))) print(indices) # [0, 3, 6]
Teknik Lanjutan
NumPy untuk Kumpulan Data Besar
Saat bekerja dengan data numerik atau teks besar, mengonversi daftar ke array NumPy dapat mempercepat pencarian.
pip install numpy import numpy as np my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] array = np.array(my_list) indices = np.where(array == 'Guru')[0] print(indices) # [0 3 6]
more_itertools.locate()
Untuk pendekatan fungsional yang bersih, more_itertools.locate() mengembalikan iterator indeks yang memenuhi predikat.
pip install more_itertools from more_itertools import locate indices = list(locate(my_list, lambda x: x == 'Guru')) print(indices) # [0, 3, 6]
Kesimpulan Utama
list.index() adalah metode paling langsung untuk menemukan kemunculan pertama dari nilai. - Gunakan parameter
start dan end untuk membatasi rentang pencarian. - Ketika elemen muncul beberapa kali, gunakan loop, list comprehensions,
enumerate(), filter(), atau perpustakaan eksternal seperti NumPy atau more_itertools untuk mengumpulkan semua indeks. - Selalu tangani
ValueError saat nilai yang dicari mungkin tidak ada.