Python Daftar indeks() dengan Contoh

Daftar adalah wadah yang menyimpan item dengan tipe data berbeda (int, float, Boolean, string, dll.) dalam urutan yang berurutan. Ini adalah struktur data penting yang ada di dalamnya PythonData ditulis dalam tanda kurung siku ([]) dan nilainya dipisahkan dengan tanda koma (,).

Item di dalam daftar diindeks dengan elemen pertama dimulai dari indeks 0. Anda dapat membuat perubahan pada daftar yang dibuat dengan menambahkan item baru atau dengan memperbarui, menghapus yang sudah ada. Itu juga dapat memiliki item duplikat dan daftar bersarang.

Ada banyak metode yang tersedia dalam daftar, dan yang penting adalah indeks().

Python Daftar indeks()

Metode daftar indeks() membantu Anda menemukan indeks terendah pertama dari elemen tertentu. Jika ada elemen duplikat di dalam daftar, indeks pertama elemen tersebut dikembalikan. Ini adalah cara termudah dan mudah untuk mendapatkan indeks.

Selain metode indeks() daftar bawaan, Anda juga dapat menggunakan cara lain untuk mendapatkan indeks seperti mengulang daftar, menggunakan pemahaman daftar, enumerate(), metode filter.

Metode daftar indeks() mengembalikan indeks terendah pertama dari elemen tertentu.

Sintaksis

list.index(element, start, end)

Parameters

Parameters Description
elemen Elemen yang ingin Anda dapatkan indeksnya.
awal Parameter ini opsional. Anda dapat menentukan awal: indeks untuk mencari elemen. Jika tidak diberikan, nilai defaultnya adalah 0.
akhir Parameter ini opsional. Anda dapat menentukan indeks akhir untuk elemen yang akan dicari. Jika tidak diberikan, dianggap sampai akhir daftar.

Nilai pengembalian

Metode daftar indeks() mengembalikan indeks elemen tertentu. Jika elemen tidak ada dalam daftar, metode indeks() akan memunculkan kesalahan, misalnya ValueError: 'Element' is not in the list.

Contoh: Untuk mencari indeks elemen tertentu.

Dalam daftar my_list = ['A', 'B', 'C', 'D', 'E', 'F'] , kami ingin mengetahui indeks untuk elemen C dan F.

Contoh di bawah ini menunjukkan cara mendapatkan indeks.

my_list = ['A', 'B', 'C', 'D', 'E', 'F']
print("The index of element C is ", my_list.index('C'))
print("The index of element F is ", my_list.index('F'))

Keluaran:

The index of element C is  2
The index of element F is  5

Contoh: Menggunakan awal dan akhir di indeks()

Dalam contoh ini akan mencoba membatasi pencarian indeks dalam daftar menggunakan indeks awal dan akhir.

my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']
print("The index of element C is ", my_list.index('C', 1, 5))
print("The index of element F is ", my_list.index('F', 3, 7))
#using just the startindex
print("The index of element D is ", my_list.index('D', 1))

Keluaran:

The index of element C is  2
The index of element F is  5
The index of element D is  3

Contoh: Untuk menguji metode indeks() dengan elemen yang tidak ada.

Saat Anda mencoba mencari indeks dalam daftar untuk elemen yang tidak ada, Anda akan mendapatkan kesalahan seperti yang ditunjukkan di bawah ini:

my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']
print("The index of element C is ", my_list.index('Z'))

Keluaran:

Traceback (most recent call last):
File "display.py", line 3, in <module>
print("The index of element C is ", my_list.index('Z'))
ValueError: 'Z' is not in list

Menggunakan for-loop untuk mendapatkan indeks suatu elemen dalam daftar

Dengan metode list.index(), kita telah melihat bahwa metode ini memberikan indeks elemen yang diteruskan sebagai argumen.

Sekarang anggap daftarnya sebagai: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] . Nama 'Guru' muncul 3 kali di indeks, dan saya ingin semua indeks dengan nama 'Guru'.

Dengan menggunakan for-loop kita seharusnya bisa mendapatkan beberapa indeks seperti yang ditunjukkan pada contoh di bawah ini.

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
all_indexes = [] 
for i in range(0, len(my_list)) : 
    if my_list[i] == 'Guru' : 
        all_indexes.append(i)
print("Originallist ", my_list)
print("Indexes for element Guru : ", all_indexes)

Keluaran:

Originallist  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru :  [0, 3, 6]

Menggunakan while-loop dan list.index()

Menggunakan perulangan while akan menelusuri daftar yang diberikan untuk mendapatkan semua indeks elemen tertentu.

Dalam daftar : my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'], kita memerlukan semua indeks elemen 'Guru'.

Di bawah ini adalah contoh yang menunjukkan cara mendapatkan semua indeks menggunakan while-loop

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
result = []
elementindex = -1
while True:
    try:
        elementindex = my_list.index('Guru', elementindex+1)
        result.append(elementindex)
    except  ValueError:
        break
print("OriginalList is ", my_list)
print("The index for element Guru is ", result)

Keluaran:

OriginalList is  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
The index for element Guru is  [0, 3, 6]

Menggunakan pemahaman daftar untuk mendapatkan indeks elemen dalam daftar

Untuk mendapatkan semua indeks, cara cepat dan mudah adalah dengan memanfaatkan pemahaman daftar pada daftar.

Pemahaman daftar adalah Python fungsi yang digunakan untuk membuat urutan baru (seperti daftar, kamus, dll.) yaitu menggunakan urutan yang telah dibuat.

Mereka membantu mengurangi loop yang lebih panjang dan membuat kode Anda lebih mudah dibaca dan dipelihara.

Contoh berikut menunjukkan cara melakukannya:

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
print("Originallist ", my_list)
all_indexes = [a for a in range(len(my_list)) if my_list[a] == 'Guru']
print("Indexes for element Guru : ", all_indexes)

Keluaran:

Originallist  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru :  [0, 3, 6]

Menggunakan Enumerate untuk mendapatkan indeks suatu elemen dalam daftar

Fungsi Enumerate() adalah fungsi bawaan yang tersedia dengan python. Anda dapat menggunakan enumerate untuk mendapatkan semua indeks elemen dalam daftar. Dibutuhkan input sebagai objek yang dapat diubah (yaitu, objek yang dapat diulang), dan outputnya adalah objek dengan counter untuk setiap item.

Contoh berikut menunjukkan cara menggunakan enumerate pada daftar untuk mendapatkan semua indeks untuk elemen yang diberikan.

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
print("Originallist ", my_list)
print("Indexes for element Guru : ", [i for i, e in enumerate(my_list) if e == 'Guru'])

Keluaran:

Originallist  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru :  [0, 3, 6]

Menggunakan filter untuk mendapatkan indeks elemen dalam daftar

Metode filter() memfilter daftar yang diberikan berdasarkan fungsi yang diberikan. Setiap elemen daftar akan diteruskan ke fungsi, dan elemen yang diperlukan akan disaring berdasarkan kondisi yang diberikan dalam fungsi tersebut.

Mari kita gunakan metode filter() untuk mendapatkan indeks untuk elemen tertentu dalam daftar.

Contoh berikut menunjukkan cara menggunakan filter pada daftar.

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
print("Originallist ", my_list)
all_indexes = list(filter(lambda i: my_list[i] == 'Guru', range(len(my_list)))) 
print("Indexes for element Guru : ", all_indexes)

Keluaran:

Originallist  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru :  [0, 3, 6]

Menggunakan NumPy untuk mendapatkan indeks elemen dalam daftar

Pustaka NumPy khusus digunakan untuk array. Jadi disini akan menggunakan NumPy untuk mendapatkan indeks elemen yang kita butuhkan dari daftar yang diberikan.

Untuk menggunakan NumPy, kita harus menginstalnya dan mengimpornya.

Berikut langkah-langkahnya:

Langkah 1) Instal NumPy

pip install numpy

Langkah 2) Impor Modul NumPy.

import numpy as np

Langkah 3) Manfaatkan np.array untuk mengonversi daftar menjadi array

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
np_array = np.array(my_list)

Langkah 4) Dapatkan indeks elemen yang Anda inginkan, menggunakannp.where()

item_index = np.where(np_array == 'Guru')[0]

Kode kerja terakhir dengan keluaran adalah sebagai berikut:

import numpy as np
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
np_array = np.array(my_list)
item_index = np.where(np_array == 'Guru')[0]
print("Originallist ", my_list)
print("Indexes for element Guru :", item_index)

Keluaran:

Originallist['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru : [0 3 6]

Menggunakan more_itertools.loc() untuk mendapatkan indeks elemen dalam daftar

more_itertools.loc() membantu menemukan indeks elemen dalam daftar. Modul ini akan bekerja dengan python versi 3.5+. Paket selengkapnya_itertools harus diinstal terlebih dahulu untuk dapat menggunakannya.

Berikut adalah langkah-langkah untuk menginstal dan menggunakan more_itertools

Langkah 1) Instal more_itertools menggunakan pip (manajer paket python). Perintahnya adalah

pip install more_itertools

Langkah 2) Setelah instalasi selesai, impor menemukan modul seperti yang ditunjukkan di bawah ini

from more_itertools import locate

Sekarang Anda dapat menggunakan modul loc pada daftar seperti yang ditunjukkan pada contoh di bawah ini:

from more_itertools import locate
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
print("Originallist : ", my_list)
print("Indexes for element Guru :", list(locate(my_list, lambda x: x == 'Guru')))

Keluaran:

Originallist :  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru : [0, 3, 6]

Ringkasan

  • Metode daftar indeks() membantu Anda menemukan indeks elemen tertentu. Ini adalah cara termudah dan mudah untuk mendapatkan indeks.
  • Metode daftar indeks() mengembalikan indeks elemen tertentu.
  • Jika elemen tidak ada dalam daftar, metode indeks() akan menimbulkan kesalahan, misalnya ValueError: 'Element' is not in list.
  • Selain metode daftar bawaan, Anda juga dapat menggunakan cara lain untuk mendapatkan indeks seperti mengulang daftar, menggunakan pemahaman daftar, menggunakan enumerate(), menggunakan filter, dll.
  • Menggunakan for-loop dan while-loop untuk mendapatkan beberapa indeks dari elemen tertentu.
  • Untuk mendapatkan semua indeks, cara cepat dan mudah adalah dengan memanfaatkan pemahaman daftar pada daftar.
  • Pemahaman daftar adalah Python fungsi yang digunakan untuk membuat urutan baru.
  • Mereka membantu mengurangi loop yang lebih panjang dan membuat kode Anda lebih mudah dibaca dan dipelihara.
  • Anda dapat menggunakan enumerate untuk mendapatkan semua indeks elemen dalam daftar.
  • Fungsi Enumerate() adalah fungsi bawaan yang tersedia dengan python. Dibutuhkan input sebagai objek yang dapat diubah (yaitu, objek yang dapat diulang), dan outputnya adalah objek dengan counter untuk setiap item.
  • Metode filter() memfilter daftar yang diberikan berdasarkan fungsi yang diberikan.
  • Pustaka numpy khusus digunakan untuk array. Anda dapat menggunakan NumPy untuk mendapatkan indeks elemen yang diberikan dalam daftar.
  • more_itertools.loc() adalah pustaka python lain yang membantu menemukan indeks dari daftar yang diberikan.