Liste, farklı veri türlerindeki öğeleri (girişler, kayan değerler, Boolean, dizeler, vb.) Sıralı bir sırada depolayan bir kapsayıcıdır. Python'da yerleşik olan önemli bir veri yapısıdır. Veriler köşeli parantez ([]) içine yazılır ve değerler virgülle (,) ayrılır.
Listedeki öğeler, 0 dizininden başlayan ilk öğe ile indekslenir. Oluşturulan listede yeni öğeler ekleyerek veya mevcut olanları güncelleyerek, silerek değişiklik yapabilirsiniz. Aynı zamanda yinelenen öğeler ve iç içe geçmiş bir liste de olabilir.
Bir listede birçok yöntem vardır ve en önemlisi index () 'dir.
Bu eğitimde şunları öğreneceksiniz:
- Python Listesi dizini ()
- Listedeki bir elemanın dizinini almak için for-döngü kullanma
- While-loop ve list.index () kullanma
- Bir listedeki öğenin dizinini almak için liste anlamayı kullanma
- Listedeki bir öğenin dizinini almak için Numaralandırmayı kullanma
- Listedeki bir elemanın dizinini almak için filtre kullanma
- Listedeki bir elemanın dizinini almak için NumPy kullanma
- Listedeki bir öğenin dizinini almak için more_itertools.locate () kullanma
Python Listesi dizini ()
List index () yöntemi, verilen öğenin ilk en düşük dizinini bulmanıza yardımcı olur. Listenin içinde yinelenen öğeler varsa, öğenin ilk dizini döndürülür. Bu, dizini almanın en kolay ve anlaşılır yoludur.
Yerleşik list index () yönteminin yanı sıra, liste anlamalarını, enumerate (), filtre yöntemlerini kullanarak liste boyunca döngü yapmak gibi dizini elde etmek için 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 |
element | Dizini almak istediğiniz öğe. |
Başlat | Bu parametre isteğe bağlıdır. Elemanı aramak için start: index'i tanımlayabilirsiniz. Belirtilmemişse, varsayılan değer 0'dır. |
son | Bu parametre isteğe bağlıdır. Aranacak elemanın bitiş dizinini belirtebilirsiniz. Verilmezse listenin sonuna kadar dikkate 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 atar, örneğin, ValueError: 'Öğe' listede yok.
Örnek: Verilen elemanın dizinini bulmak için.
My_list = ['A', 'B', 'C', 'D', 'E', 'F'] listesinde, C ve F öğelerinin dizinini bilmek istiyoruz.
Aşağıdaki örnek dizinin nasıl alınacağını göstermektedir.
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 2The index of element F is 5
Örnek: index () 'de başlangıç ve bitişi kullanma
Bu örnekte, başlangıç ve bitiş dizinini kullanarak bir listede dizin aramayı sınırlandırmaya ç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 startindexprint("The index of element D is ", my_list.index('D', 1))
Çıktı:
The index of element C is 2The index of element F is 5The index of element D is 3
Örnek: index () yöntemini mevcut olmayan bir öğeyle test etmek için.
Listede mevcut olmayan eleman için dizin aramaya çalıştığınızda, aşağıda gösterildiği 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, inprint("The index of element C is ", my_list.index('Z'))ValueError: 'Z' is not in list
Listedeki bir elemanın dizinini almak için for-döngü kullanma
List.index () yöntemi 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' ismi dizinde 3 kez var ve ben 'Guru' isimli tüm dizinleri istiyorum.
For-döngüsünü kullanarak, aşağıdaki örnekte gösterildiği gibi çoklu indeksleri elde edebilmeliyiz.
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-loop ve list.index () kullanma
Bir while döngüsü kullanmak, verilen elemanın tüm dizinlerini almak için verilen liste boyunca döngü oluşturacaktır.
Listede: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'], 'Guru' öğesinin tüm dizinlerine ihtiyacımız var.
Aşağıda verilen bir örnek while döngüsünü kullanarak tüm dizinlerin nasıl elde edileceğini göstermektedir.
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)
Çı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 anlamayı kullanma
Tüm dizinleri almanın hızlı ve anlaşılır bir yolu, listedeki liste anlayışından yararlanmaktır.
Liste anlamaları, yeni diziler (listeler, sözlükler vb.) Oluşturmak için, yani önceden oluşturulmuş dizileri kullanmak için kullanılan Python işlevleridir.
Daha uzun döngüleri azaltmaya ve kodunuzun okunmasını ve bakımını kolaylaştırmaya yardımcı olurlar.
Aşağıdaki örnek bunun nasıl yapılacağını 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 ile kullanılabilen yerleşik bir işlevdir. Bir listedeki öğenin tüm dizinlerini almak için numaralandırmadan yararlanabilirsiniz. Girdiyi yinelenebilir bir nesne olarak alır (yani, döngüye alınabilen bir nesne) ve çıktı, her öğeye bir sayacı olan bir nesnedir.
Aşağıdaki örnek, belirli bir elemanın tüm dizinlerini almak için bir listede numaralandırmanın nasıl kullanılacağını gösterir.
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 elemanın dizinini almak için filtre kullanma
Filter () yöntemi, verilen işleve göre verilen listeyi filtreler. Listenin her bir öğesi işleve geçirilecek ve gerekli öğeler işlevde verilen koşula göre filtrelenecektir.
Listedeki belirli öğenin dizinlerini elde etmek için filter () yöntemini kullanalım.
Aşağıdaki örnek, bir listede filtreden nasıl yararlanı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 elemanın dizinini almak için NumPy kullanma
NumPy kitaplığı özellikle diziler için kullanılır. Bu yüzden burada, verilen listeden ihtiyacımız olan elementin indeksini almak için NumPy kullanacağız.
NumPy'yi kullanmak için onu kurmalı ve içe aktarmalıyız.
İşte aynı adımlar:
Adım 1) NumPy'yi Kurun
pip install numpy
Adım 2) NumPy Modülünü içe aktarın.
import numpy as np
Adım 3) Listeyi bir diziye dönüştürmek için np.array kullanın
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']np_array = np.array(my_list)
Adım 4) İstediğiniz öğenin dizinini np.where () kullanarak alın
item_index = np.where(np_array == 'Guru')[0]
Çıktıyla birlikte son çalışma kodu aşağıdaki gibidir:
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)
Çı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 () kullanma
More_itertools.locate (), listedeki öğenin dizinlerini bulmaya yardımcı olur. Bu modül, python sürüm 3.5+ ile çalışacaktır. Daha fazla_itertools paketi , onu kullanmak için önce kurulmalıdır.
More_itertools'u kurma ve kullanma adımları aşağıdadır
Adım 1) pip (python paket yöneticisi) kullanarak more_itertools kurun. Komut şudur:
pip install more_itertools
Adım 2) Kurulum tamamlandıktan sonra, konum belirleme modülünü aşağıda gösterildiği gibi içe aktarın
from more_itertools import locate
Şimdi aşağıdaki örnekte gösterildiği gibi bir listede yer belirleme modülünden yararlanabilirsiniz:
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')))
Çı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 atar, örneğin, ValueError: 'Öğe' listede yok.
- Yerleşik liste yönteminin yanı sıra, liste boyunca döngü yapmak, liste anlamalarını kullanmak, enumerate () kullanmak, bir filtre kullanmak gibi dizini elde etmenin başka yollarından da yararlanabilirsiniz.
- Belirli bir elemanın çoklu dizinlerini elde etmek için for-loop ve while-döngüsünü kullanma.
- Tüm dizinleri almanın hızlı ve anlaşılır bir yolu, listedeki liste anlayışından yararlanmaktır.
- Liste anlamaları, yeni diziler oluşturmak için kullanılan Python işlevleridir.
- 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ırmadan yararlanabilirsiniz.
- Enumerate () işlevi, python ile kullanılabilen yerleşik bir işlevdir. Girdiyi yinelenebilir bir nesne olarak alır (yani, döngüye alınabilen bir nesne) ve çıktı, her öğeye bir sayacı olan bir nesnedir.
- Filter () yöntemi, verilen işleve göre verilen listeyi filtreler.
- Numpy kitaplığı özellikle diziler için kullanılır. Listede verilen elementin indeksini almak için NumPy'yi kullanabilirsiniz.
- More_itertools.locate (), verilen listenin dizinlerini bulmaya yardımcı olan başka bir python kitaplığıdır.