Python Liste dizini () Örnek ile

İçindekiler:

Anonim

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, in print("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.