Python Örnekle index()'i listeleyin
Liste, farklı veri türlerindeki öğeleri (int'ler, kayan noktalar, Boolean, dizeler vb.) sıralı bir sırayla saklayan bir kaptır. Dahili olarak bulunan önemli bir veri yapısıdır. PythonVeriler köşeli parantez ([]) içine yazılır ve değerler virgülle (,) ayrılır.
Liste içindeki öğeler 0 indeksinden başlayarak ilk elemanla indekslenir. Oluşturulan listede yeni öğeler ekleyerek veya mevcut olanları güncelleyerek, silerek değişiklik yapabilirsiniz. Aynı zamanda yinelenen öğelere ve iç içe geçmiş bir listeye de sahip olabilir.
Bir listede pek çok yöntem mevcuttur ve bunlardan en önemlisi index() yöntemidir.
Python Liste dizini()
List index() yöntemi, verilen öğenin ilk en düşük dizinini bulmanıza yardımcı olur. Listede yinelenen öğeler varsa, öğenin ilk dizini döndürülür. Bu, dizini almanın en kolay ve anlaşılır yoludur.
Yerleşik liste index() yönteminin yanı sıra, dizini elde etmek için listede döngü yapmak, liste kavramaları, enumerate(), filtre yöntemlerini kullanmak gibi başka yolları da kullanabilirsiniz.
List index() yöntemi, verilen öğenin ilk en düşük dizinini döndürür.
Sözdizimi
list.index(element, start, end)
parametreler
parametreler | Açıklama |
---|---|
eleman | Dizini almak istediğiniz öğe. |
başlama | Bu parametre isteğe bağlıdır. Öğeyi aramak için start: dizinini tanımlayabilirsiniz. Verilmediği takdirde varsayılan değer 0'dır. |
son | Bu parametre isteğe bağlıdır. Aranacak öğenin bitiş indeksini belirleyebilirsiniz. Verilmediği takdirde liste sonuna kadar değerlendirmeye alınır. |
Geri dönüş değeri
List index() yöntemi, verilen öğenin dizinini döndürür. Öğe listede yoksa, index() yöntemi bir hata verecektir; örneğin, ValueError: 'Element' listede yok.
Örnek: Verilen elemanın indeksini bulmak için.
my_list = ['A', 'B', 'C', 'D', 'E', 'F'] listesinde, C ve F elementinin indeksini bilmek istiyoruz.
Aşağıdaki örnekte indeksin nasıl alınacağı gösterilmektedir.
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'))
Çıktı:
The index of element C is 2 The index of element F is 5
Örnek: index()'te başlangıç ve bitişin kullanılması
Bu örnekte bir listedeki indeks aramasını başlangıç ve bitiş indekslerini kullanarak sınırlamaya çalışacağız.
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))
Çıktı:
The index of element C is 2 The index of element F is 5 The index of element D is 3
Örnek: index() yöntemini mevcut olmayan bir öğeyle test etmek.
Listede bulunmayan bir elemanın indeksini aramaya çalıştığınızda aşağıdaki gibi bir hata alırsınız:
my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'] print("The index of element C is ", my_list.index('Z'))
Çıktı:
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
Listedeki bir öğenin dizinini almak için for-döngüsünü kullanma
List.index() metodu ile argüman olarak iletilen elemanın indeksini verdiğini gördük.
Şimdi listeyi şu şekilde düşünün: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] . 'Guru' adı dizinde 3 kez mevcut ve tüm dizinlerin 'Guru' adını almasını istiyorum.
For-loop'u kullanarak aşağıdaki örnekte gösterildiği gibi birden fazla dizini alabilmemiz gerekir.
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)
Çıktı:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
While döngüsünü ve list.index() işlevini kullanma
Bir while döngüsü kullanmak, verilen öğenin tüm indekslerini almak için verilen listede dolaşacaktır.
Listede: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'], 'Guru' öğesinin tüm indekslerine ihtiyacımız var.
Aşağıda verilen örnek, while döngüsü kullanarak tüm indekslerin nasıl alınacağını göstermektedir.
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)
Çıktı:
OriginalList is ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] The index for element Guru is [0, 3, 6]
Bir listedeki öğenin dizinini almak için liste kavramayı kullanma
Tüm indeksleri almanın hızlı ve basit bir yolu listedeki liste kavramayı kullanmaktır.
Liste anlayışları Python yeni diziler oluşturmak için kullanılan işlevler (listeler, sözlükler vb. gibi), yani önceden oluşturulmuş dizileri kullanmak.
Daha uzun döngüleri azaltmaya ve kodunuzun okunmasını ve bakımını kolaylaştırmaya yardımcı olurlar.
Aşağıdaki örnek bunu nasıl yapacağınızı göstermektedir:
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)
Çıktı:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Listedeki bir öğenin dizinini almak için Numaralandırmayı kullanma
Enumerate() işlevi python'da kullanılabilen yerleşik bir işlevdir. Bir listedeki öğenin tüm dizinlerini almak için numaralandırmayı kullanabilirsiniz. Girdiyi yinelenebilir bir nesne (yani döngüye sokulabilen bir nesne) olarak alır ve çıktı, her öğeye karşı bir sayacı olan bir nesnedir.
Aşağıdaki örnek, verilen bir öğenin tüm indekslerini almak için bir listede enumerate işlevinin nasıl kullanılacağını göstermektedir.
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'])
Çıktı:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Listedeki bir öğenin dizinini almak için filtre kullanma
Filter() yöntemi, verilen listeyi verilen fonksiyona göre filtreler. Listenin her elemanı fonksiyona iletilecek ve gerekli elemanlar fonksiyonda belirtilen koşula göre filtrelenecektir.
Listedeki belirli bir öğenin indekslerini almak için filter() yöntemini kullanalım.
Aşağıdaki örnek bir listede filtrenin nasıl kullanılacağını göstermektedir.
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)
Çıktı:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Listedeki bir öğenin dizinini almak için NumPy'yi kullanma
NumPy kütüphanesi özellikle diziler için kullanılır. Burada verilen listeden ihtiyacımız olan elemanın indeksini almak için NumPy'den yararlanacağız.
NumPy'den yararlanmak için onu kurmalı ve içe aktarmalıyız.
İşte aynı adımlar:
) 1 Adım NumPy'yi yükleyin
pip install numpy
) 2 Adım NumPy Modülünü içe aktarın.
import numpy as np
) 3 Adım Listeyi diziye dönüştürmek için np.array'den yararlanın
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] np_array = np.array(my_list)
) 4 Adım Np.where() kullanarak istediğiniz öğenin dizinini alın
item_index = np.where(np_array == 'Guru')[0]
Çıkışlı son çalışma kodu aşağıdaki gibidir:
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)
Çıktı:
Originallist['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0 3 6]
Listedeki bir öğenin dizinini almak için more_itertools.locate() işlevini kullanma
more_itertools.locate(), listedeki öğenin indekslerini bulmaya yardımcı olur. Bu modül python 3.5+ sürümüyle çalışacaktır. Paket more_itertools Kullanılabilmesi için öncelikle kurulması gerekmektedir.
more_itertools'u kurmak ve kullanmak için aşağıdaki adımlar izlenmelidir
Adım1) More_itertools'u pip (python paket yöneticisi) kullanarak yükleyin. Komut
pip install more_itertools
) 2 Adım Kurulum tamamlandıktan sonra içe aktarın yerleştirmek aşağıda gösterildiği gibi modül
from more_itertools import locate
Artık aşağıdaki örnekte gösterildiği gibi bir listedeki konum bulma modülünü kullanabilirsiniz:
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')))
Çıktı:
Originallist : ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
ÖZET
- List index() yöntemi, verilen öğenin dizinini bulmanıza yardımcı olur. Bu, dizini almanın en kolay ve anlaşılır yoludur.
- List index() yöntemi, verilen öğenin dizinini döndürür.
- Öğe listede yoksa, index() yöntemi bir hata verecektir; örneğin, ValueError: 'Element' listede değil.
- Yerleşik liste yönteminin yanı sıra, dizini elde etmek için listede döngü yapmak, liste kavramalarını kullanmak, enumerate() işlevini kullanmak, filtre kullanmak vb. gibi başka yollardan da yararlanabilirsiniz.
- Belirli bir öğenin birden fazla dizinini almak için for-loop ve while-loop'u kullanma.
- Tüm indeksleri almanın hızlı ve basit bir yolu listedeki liste kavramayı kullanmaktır.
- Liste anlayışları Python Yeni diziler oluşturmak için kullanılan işlevler.
- Daha uzun döngüleri azaltmaya ve kodunuzun okunmasını ve bakımını kolaylaştırmaya yardımcı olurlar.
- Bir listedeki öğenin tüm dizinlerini almak için numaralandırmayı kullanabilirsiniz.
- Enumerate() işlevi python'da kullanılabilen yerleşik bir işlevdir. Girdiyi yinelenebilir bir nesne (yani döngüye sokulabilen bir nesne) olarak alır ve çıktı, her öğeye karşı bir sayacı olan bir nesnedir.
- Filter() yöntemi, verilen listeyi verilen fonksiyona göre filtreler.
- Numpy kütüphanesi özellikle diziler için kullanılır. Listede verilen elemanın indeksini almak için NumPy'den yararlanabilirsiniz.
- more_itertools.locate(), verilen listenin indekslerini bulmaya yardımcı olan başka bir python kütüphanesidir.