Python Örnekle index()'i listeleyin

⚡ Akıllı Özet

Python `index()` fonksiyonu verilen öğenin ilk konumunu döndürürken, `loo` fonksiyonu da aynı işlevi görür.ping Yapılar, liste anlama ifadeleri, enumerate(), filter(), NumPy kütüphanesi ve more_itertools.locate() bu tekniği, yinelenen değerler içeren bir listedeki her eşleşen dizini toplamak için genişletir.

  • 🔘 index() metodu: Dahili index() fonksiyonu, bir öğenin ilk en düşük konumunu döndürür ve isteğe bağlı başlangıç ​​ve bitiş sınırlarını kabul eder.
  • ☑️ DeğerHatası: `index()` fonksiyonu, öğe bulunmadığında `ValueError` hatası verir; bu nedenle güvenli arama işlemleri için çağrıyı `try-except` bloğuna alın.
  • Tüm olaylar: Bir for döngüsü, while döngüsü veya liste anlama ifadesi, listede bir değer tekrarlandığında her indeksi toplar.
  • 🧪 Dahili yardımcılar: `enumerate()` ve `filter()` fonksiyonları, her öğeye bir indeks atayarak eşleşen konumları toplamak için özlü, tek satırlık yöntemler sunar.
  • NumPy ve daha fazlası: `np.where()` ve `more_itertools.locate()` fonksiyonları, büyük veri kümeleri için eşleşen tüm indeksleri verimli bir şekilde döndürür.
  • 🤖 Yapay zeka iş akışları: Makine öğrenimi işlem hatları, diziler bir modele beslenmeden önce etiket konumlarını ve eşleşen örnekleri dizine göre bulur.

Python Liste dizini()

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.

Listeler üzerinde birçok yöntem kullanılabilir ve bunlardan önemlilerinden biri de 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.

Listedeki yerleşik index() yönteminin yanı sıra, loo gibi başka yöntemler kullanarak da indeksi elde edebilirsiniz.ping Listeyi, liste anlama ifadeleri, enumerate() ve filter yöntemlerini kullanarak tarayın.

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 başlangıç ​​dizinini tanımlayabilirsiniz. Belirtilmezse, 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 elemanlarının indekslerini öğrenmek 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 indeksi ararken başlangıç ​​ve bitiş indekslerini kullanarak 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 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 öğeyi 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, 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']. İsim 'Guru' ifadesi dizinde 3 kez geçiyor ve ben ' ile başlayan tüm dizinleri istiyorum.Guru'.

Aşağıdaki örnekte gösterildiği gibi, for döngüsü kullanarak birden fazla indeksi 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 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'], ' öğesinin tüm indekslerine ihtiyacımız var.Guru'.

Aşağıda, while döngüsü kullanarak tüm indeksleri nasıl alacağınızı gösteren bir örnek bulunmaktadır.

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, 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, aşağıdakilerle kullanılabilen yerleşik bir işlevdir: Python. 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, bir listedeki bir öğenin tüm indekslerini almak için `enumerate` fonksiyonunun 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 filtre kullanımının nasıl gerçekleştirileceğini 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. Bu nedenle 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` yöntemini kullanı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 indeksini 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]

more_itertools.locate() kullanarak bir listedeki bir öğenin indeksini almak

`more_itertools.locate()` fonksiyonu, listedeki öğelerin indekslerini bulmaya yardımcı olur. Bu modül aşağıdakilerle çalışacaktır: Python sürüm 3.5+. Paket more_itertools Kullanılabilmesi için öncelikle kurulması gerekmektedir.

Aşağıda more_itertools'u kurmak ve kullanmak için izlenecek adımlar verilmiştir:

) 1 Adım More_itertools'u pip kullanarak yükleyin (Python paket yöneticisi). 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]

SSS

`index()` metodu, öğe eksik olduğunda `ValueError` hatası verir. Eksik bir değer programınızın çökmesine neden olmaması için, çağrıyı bir `try-except` bloğuna alın veya önce `in` operatörüyle üyeliği test edin.

index() fonksiyonunun döndürdüğü değer her zaman başlangıçtan itibaren sayılan negatif olmayan bir konumdur. Aramayı sınırlandırmak için negatif başlangıç ​​veya bitiş argümanları geçirebilirsiniz, ancak index() fonksiyonu bulunan bir öğe için asla negatif bir indeks döndürmez.

Evet. index() elemanları tam olarak karşılaştırır, bu yüzden 'Guru' ve 'guru' farklı değerler olarak ele alınır. Yanlış büyük/küçük harf kullanımı ValueError hatasına neden olur. Büyük/küçük harf duyarlılığı olmayan eşleştirme gerekiyorsa, aramadan önce dizeleri lower() ile normalleştirin.

Örneğin, 'Guru'my_list' içinde ' değerini döndürür. Hata vermeden True veya False değerini döndürür, bu nedenle index() fonksiyonunu yalnızca öğe listede gerçekten mevcut olduğunda güvenle çağırabilirsiniz.

Tek bir arama için, yerleşik index() fonksiyonu zaten verimlidir çünkü ilk eşleşmede durur. Birçok değeri tekrar tekrar bulmak için bir sözlük haritası oluşturun.ping Her bir değer kendi indeksine atanır, bu da her aramayı hızlı ve sabit zamanlı bir işleme dönüştürür.

Python Listeler `index()` yöntemini sunar ancak `find()` yöntemine sahip değildir. `index()` yöntemi, öğe bulunmadığında `ValueError` hatası verirken, `find()` yöntemi `-1` değerini döndürür. Listeler için, hatayı yakalayın veya `in` operatörüyle üyelik kontrolü yapın.

Bir öğenin indeksini bulmak, kategorik etiketleri sayısal konumlara eşlemeye, tahmin edilen bir sınıfın nerede göründüğünü bulmaya veya eğitimden önce özellik sütunlarını hizalamaya yardımcı olur. NumPy, büyük diziler ve veri kümeleri arasında hızlı indeks aramaları için bunu np.where() ile genişletir.

Evet. GitHub Copilot ve yapay zeka destekli asistanlar, düz bir yorumdan index(), enumerate() ve anlama dayalı aramalar oluşturur, eksik değerler için güvenli hata işleme önerir ve döngüleri yeniden düzenler; ancak yine de uç durumları test etmeli ve döndürülen konumları doğrulamalısınız.

Bu yazıyı şu şekilde özetleyin: