Senarai adalah wadah yang menyimpan item dari pelbagai jenis data (int, float, Boolean, string, dll.) Dalam urutan tersusun. Ini adalah struktur data penting yang dibina di Python. Data ditulis di dalam tanda kurung siku ([]), dan nilainya dipisahkan dengan koma (,).
Item di dalam senarai diindeks dengan elemen pertama bermula dari indeks 0. Anda boleh membuat perubahan dalam senarai yang dibuat dengan menambahkan item baru atau dengan mengemas kini, menghapus yang sudah ada. Ia juga boleh mempunyai item pendua dan senarai bersarang.
Terdapat banyak kaedah yang terdapat dalam senarai, dan yang penting adalah indeks ().
Dalam tutorial ini, anda akan belajar:
- Indeks Senarai Python ()
- Menggunakan for-loop untuk mendapatkan indeks elemen dalam senarai
- Menggunakan while-loop dan list.index ()
- Menggunakan pemahaman senarai untuk mendapatkan indeks elemen dalam senarai
- Menggunakan Enumerate untuk mendapatkan indeks elemen dalam senarai
- Menggunakan penapis untuk mendapatkan indeks elemen dalam senarai
- Menggunakan NumPy untuk mendapatkan indeks elemen dalam senarai
- Menggunakan more_itertools.locate () untuk mendapatkan indeks elemen dalam senarai
Indeks Senarai Python ()
Kaedah senarai indeks () membantu anda mencari indeks terendah pertama bagi elemen yang diberikan. Sekiranya terdapat unsur pendua di dalam senarai, indeks pertama elemen dikembalikan. Ini adalah kaedah paling mudah dan mudah untuk mendapatkan indeks.
Selain kaedah indeks senarai bawaan (), anda juga dapat menggunakan cara lain untuk mendapatkan indeks seperti mengulangi daftar, menggunakan pemahaman daftar, menghitung (), kaedah penapis.
Kaedah senarai indeks () mengembalikan indeks terendah pertama elemen yang diberikan.
Sintaks
list.index(element, start, end)
Parameter
Parameter | Penerangan |
unsur | Elemen yang anda mahu dapatkan indeks. |
mulakan | Parameter ini adalah pilihan. Anda boleh menentukan permulaan: indeks untuk mencari elemen. Sekiranya tidak diberikan, nilai lalai adalah 0. |
akhir | Parameter ini adalah pilihan. Anda boleh menentukan indeks akhir untuk elemen yang akan dicari. Sekiranya tidak diberikan, ia akan dipertimbangkan sehingga akhir senarai. |
Nilai Pulangan
Kaedah senarai indeks () mengembalikan indeks elemen yang diberikan. Sekiranya elemen tidak terdapat dalam senarai, kaedah indeks () akan menimbulkan ralat, misalnya, NilaiError: 'Elemen' tidak ada dalam senarai.
Contoh: Untuk mencari indeks elemen yang diberikan.
Dalam senarai my_list = ['A', 'B', 'C', 'D', 'E', 'F'], kami ingin mengetahui indeks bagi elemen C dan F.
Contoh di bawah 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'))
Pengeluaran:
The index of element C is 2The index of element F is 5
Contoh: Menggunakan permulaan dan akhir dalam indeks ()
Dalam contoh ini akan cuba menghadkan pencarian indeks dalam senarai 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 startindexprint("The index of element D is ", my_list.index('D', 1))
Pengeluaran:
The index of element C is 2The index of element F is 5The index of element D is 3
Contoh: Untuk menguji kaedah indeks () dengan elemen yang tidak ada.
Apabila anda cuba mencari indeks dalam senarai elemen yang tidak ada, anda akan mendapat ralat seperti yang ditunjukkan di bawah:
my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']print("The index of element C is ", my_list.index('Z'))
Pengeluaran:
Traceback (most recent call last):File "display.py", line 3, inprint("The index of element C is ", my_list.index('Z'))ValueError: 'Z' is not in list
Menggunakan for-loop untuk mendapatkan indeks elemen dalam senarai
Dengan kaedah list.index (), kita telah melihat bahawa ia memberikan indeks elemen yang dilewatkan sebagai argumen.
Sekarang pertimbangkan senarai sebagai: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']. Nama 'Guru' terdapat 3 kali dalam indeks, dan saya mahu semua indeks dengan nama 'Guru'.
Dengan menggunakan for-loop kita seharusnya dapat memperoleh pelbagai indeks seperti yang ditunjukkan dalam contoh di bawah.
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)
Pengeluaran:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Menggunakan while-loop dan list.index ()
Menggunakan while-loop akan melingkari senarai yang diberikan untuk mendapatkan semua indeks elemen yang diberikan.
Dalam senarai: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'], kita memerlukan semua indeks elemen 'Guru'.
Di bawah ini diberikan contoh menunjukkan bagaimana mendapatkan semua indeks menggunakan while-loop
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']result = []elementindex = -1while True:try:elementindex = my_list.index('Guru', elementindex+1)result.append(elementindex)except ValueError:breakprint("OriginalList is ", my_list)print("The index for element Guru is ", result)
Pengeluaran:
OriginalList is ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']The index for element Guru is [0, 3, 6]
Menggunakan pemahaman senarai untuk mendapatkan indeks elemen dalam senarai
Untuk mendapatkan semua indeks, cara yang cepat dan mudah adalah dengan menggunakan pemahaman senarai dalam senarai.
Pemahaman senarai adalah fungsi Python yang digunakan untuk membuat urutan baru (seperti senarai, kamus, dan lain-lain) iaitu, menggunakan urutan yang telah dibuat.
Mereka membantu mengurangkan gelung yang lebih lama dan menjadikan kod anda lebih mudah dibaca dan dijaga.
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)
Pengeluaran:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Menggunakan Enumerate untuk mendapatkan indeks elemen dalam senarai
Fungsi Enumerate () adalah fungsi bawaan yang tersedia dengan python. Anda boleh menggunakan angka untuk mendapatkan semua indeks elemen dalam senarai. Ia memerlukan input sebagai objek yang dapat diulang (yaitu, objek yang dapat dilingkari), dan outputnya adalah objek dengan pembilang untuk setiap item.
Contoh berikut menunjukkan cara memanfaatkan bilangan dalam senarai 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'])
Pengeluaran:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Menggunakan penapis untuk mendapatkan indeks elemen dalam senarai
Kaedah filter () menyaring senarai 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.
Mari kita gunakan kaedah filter () untuk mendapatkan indeks bagi elemen yang diberikan dalam senarai.
Contoh berikut menunjukkan cara menggunakan penapis dalam senarai.
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)
Pengeluaran:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Menggunakan NumPy untuk mendapatkan indeks elemen dalam senarai
Perpustakaan NumPy digunakan khas untuk tatasusunan. Jadi di sini akan menggunakan NumPy untuk mendapatkan indeks elemen yang kita perlukan dari senarai yang diberikan.
Untuk menggunakan NumPy, kita harus memasangnya dan mengimportnya.
Berikut adalah langkah-langkah yang sama:
Langkah 1) Pasang NumPy
pip install numpy
Langkah 2) Import Modul NumPy.
import numpy as np
Langkah 3) Gunakan np.array untuk menukar senarai ke array
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']np_array = np.array(my_list)
Langkah 4) Dapatkan indeks elemen yang anda mahukan, menggunakannp.where ()
item_index = np.where(np_array == 'Guru')[0]
Kod kerja akhir dengan output adalah seperti berikut:
import numpy as npmy_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)
Pengeluaran:
Originallist['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0 3 6]
Menggunakan more_itertools.locate () untuk mendapatkan indeks elemen dalam senarai
The more_itertools.locate () membantu mencari indeks elemen dalam senarai. Modul ini akan berfungsi dengan python versi 3.5+. Pakej more_itertools mesti dipasang terlebih dahulu untuk menggunakannya.
Berikut adalah langkah-langkah untuk memasang dan memanfaatkan more_itertools
Langkah 1) Pasang more_itertools menggunakan pip (python package manager). Perintahnya adalah
pip install more_itertools
Langkah 2) Setelah pemasangan selesai, import modul cari seperti gambar di bawah
from more_itertools import locate
Sekarang anda boleh menggunakan modul cari dalam senarai seperti yang ditunjukkan di bawah dalam contoh:
from more_itertools import locatemy_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')))
Pengeluaran:
Originallist : ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Ringkasan:
- Kaedah senarai indeks () membantu anda mencari indeks elemen yang diberikan. Ini adalah kaedah paling mudah dan mudah untuk mendapatkan indeks.
- Kaedah senarai indeks () mengembalikan indeks elemen yang diberikan.
- Sekiranya elemen tidak terdapat dalam senarai, kaedah indeks () akan menimbulkan ralat, misalnya, NilaiError: 'Elemen' tidak ada dalam senarai.
- Selain kaedah senarai terbina dalam, anda juga dapat menggunakan cara lain untuk mendapatkan indeks seperti mengulangi daftar, menggunakan pemahaman daftar, menggunakan angka (), menggunakan penapis, dll.
- Menggunakan for-loop dan while-loop untuk mendapatkan pelbagai indeks elemen tertentu.
- Untuk mendapatkan semua indeks, cara yang cepat dan mudah adalah dengan menggunakan pemahaman senarai dalam senarai.
- Pemahaman senarai adalah fungsi Python yang digunakan untuk membuat urutan baru.
- Mereka membantu mengurangkan gelung yang lebih lama dan menjadikan kod anda lebih mudah dibaca dan dijaga.
- Anda boleh menggunakan angka untuk mendapatkan semua indeks elemen dalam senarai.
- Fungsi Enumerate () adalah fungsi bawaan yang tersedia dengan python. Ia memerlukan input sebagai objek yang dapat diulang (yaitu, objek yang dapat dilingkari), dan outputnya adalah objek dengan pembilang untuk setiap item.
- Kaedah filter () menyaring senarai yang diberikan berdasarkan fungsi yang diberikan.
- Perpustakaan Numpy digunakan khas untuk tatasusunan. Anda boleh menggunakan NumPy untuk mendapatkan indeks elemen yang diberikan dalam senarai.
- The more_itertools.locate () adalah pustaka python lain yang membantu mencari indeks senarai yang diberikan.