Python Loetle indeks() näitega

Loend on konteiner, mis salvestab järjestatud järjestuses erinevat tüüpi andmetüüpe (ints, floats, Boolean, strings jne). See on oluline andmestruktuur, mis on sisseehitatud Python. Andmed kirjutatakse nurksulgudesse ([]) ja väärtused eraldatakse komaga (,).

Loendis olevad üksused indekseeritakse esimese elemendiga alates indeksist 0. Loodud loendis saab teha muudatusi, lisades uusi üksusi või uuendades, kustutades olemasolevaid. Sellel võib olla ka dubleerivaid üksusi ja pesastatud loend.

Loendis on saadaval palju meetodeid ja kõige olulisem neist on index().

Python Loendi indeks()

Meetod list index() aitab leida antud elemendi esimese madalaima indeksi. Kui loendis on dubleerivaid elemente, tagastatakse elemendi esimene indeks. See on lihtsaim ja arusaadavam viis indeksi hankimiseks.

Lisaks sisseehitatud loendi indeks() meetodile saate indeksi hankimiseks kasutada ka muid viise, näiteks loendis ringi sirvimine, loendi mõistmise, enumerate(), filtreerimismeetodite kasutamine.

Meetod list index() tagastab antud elemendi esimese madalaima indeksi.

Süntaks

list.index(element, start, end)

parameetrid

parameetrid Kirjeldus
element Element, mille indeksit soovite hankida.
algus See parameeter on valikuline. Elemendi otsimiseks saate määrata algus: indeks. Kui seda pole antud, on vaikeväärtus 0.
lõpp See parameeter on valikuline. Saate määrata otsitava elemendi lõpuindeksi. Kui seda ei anta, loetakse seda nimekirja lõpuni.

Tagasi väärtus

Meetod list index() tagastab antud elemendi indeksi. Kui elementi loendis pole, annab meetod index() vea, näiteks ValueError: 'Elementi' pole loendis.

Näide: antud elemendi indeksi leidmiseks.

Loendis my_list = ['A', 'B', 'C', 'D', 'E', 'F'] sooviksime teada elementide C ja F indeksit.

Allolev näide näitab, kuidas indeksit hankida.

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'))

Väljund:

The index of element C is  2
The index of element F is  5

Näide: alguse ja lõpu kasutamine indeksis ()

Selles näites proovitakse piirata indeksi otsimist loendist, kasutades algus- ja lõppindeksit.

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))

Väljund:

The index of element C is  2
The index of element F is  5
The index of element D is  3

Näide: meetodi index() testimiseks elemendiga, mida pole.

Kui proovite otsida loendist puuduva elemendi indeksit, kuvatakse allpool näidatud tõrketeade:

my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']
print("The index of element C is ", my_list.index('Z'))

Väljund:

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

For-loop kasutamine loendis oleva elemendi indeksi hankimiseks

Meetodiga list.index() nägime, et see annab argumendina edastatava elemendi indeksi.

Nüüd käsitlege loendit järgmiselt: my_list = ['Guru', "Siya", "Tiya", "Guru", "Daksh", "Riya", "Guru"] . Nimi 'Guru' esineb indeksis 3 korda ja ma tahan kõiki indekseid nimega 'Guru'.

For-loopi kasutades peaksime saama mitu indeksit, nagu on näidatud allolevas näites.

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)

Väljund:

Originallist  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru :  [0, 3, 6]

Kasutades while-tsüklit ja list.index()

Kui kasutate tsüklit, sirvib antud loend läbi, et saada kõik antud elemendi indeksid.

Loendis : my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] vajame elemendi 'Guru' kõiki indekseid.

Allpool toodud näide näitab, kuidas saada kõik indeksid, kasutades while-tsüklit

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)

Väljund:

OriginalList is  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
The index for element Guru is  [0, 3, 6]

Loendi mõistmise kasutamine loendis oleva elemendi indeksi hankimiseks

Kõigi indeksite hankimiseks on kiire ja lihtne viis kasutada loendi mõistmist.

Loendi mõistmised on Python funktsioonid, mida kasutatakse uute jadade loomiseks (nagu loendid, sõnastikud jne), st kasutades juba loodud jadasid.

Need aitavad vähendada pikemaid silmuseid ning muudavad teie koodi hõlpsamini loetavaks ja hooldatavaks.

Järgmine näide näitab, kuidas seda teha:

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)

Väljund:

Originallist  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru :  [0, 3, 6]

Loendamisfunktsiooni kasutamine loendis oleva elemendi indeksi hankimiseks

Funktsioon Enumerate() on pythoni sisseehitatud funktsioon. Saate kasutada loendit, et saada loendisse kõik elemendi indeksid. See võtab sisendi itereeritava objektina (st objektina, mida saab silmusesse panna) ja väljundiks on objekt, millel on iga üksuse loendur.

Järgmises näites on näidatud, kuidas kasutada loendis loendit, et saada kõik antud elemendi indeksid.

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'])

Väljund:

Originallist  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru :  [0, 3, 6]

Filtri kasutamine loendis oleva elemendi indeksi hankimiseks

Meetod filter() filtreerib antud loendi antud funktsiooni alusel. Iga loendi element edastatakse funktsioonile ja vajalikud elemendid filtreeritakse funktsioonis antud tingimuse alusel.

Kasutame meetodit filter(), et saada loendis antud elemendi indeksid.

Järgmine näide näitab, kuidas loendis filtrit kasutada.

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)

Väljund:

Originallist  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru :  [0, 3, 6]

NumPy kasutamine loendis oleva elemendi indeksi hankimiseks

NumPy teeki kasutatakse spetsiaalselt massiivide jaoks. Nii et siin kasutatakse NumPy, et saada antud loendist meile vajaliku elemendi indeks.

NumPy kasutamiseks peame selle installima ja importima.

Siin on samad sammud:

Step 1) Installige NumPy

pip install numpy

Step 2) Importige NumPy moodul.

import numpy as np

Step 3) Kasutage loendi massiiviks teisendamiseks faili np.array

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
np_array = np.array(my_list)

Step 4) Hankige soovitud elemendi indeks, kasutades np.where()

item_index = np.where(np_array == 'Guru')[0]

Lõplik töökood koos väljundiga on järgmine:

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)

Väljund:

Originallist['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru : [0 3 6]

Funktsiooni more_itertools.locate() kasutamine loendis oleva elemendi indeksi hankimiseks

More_itertools.locate() aitab leida loendist elemendi indeksid. See moodul töötab Pythoni versiooniga 3.5+. Pakett more_itertools selle kasutamiseks tuleb esmalt installida.

Järgnevalt on toodud juhised more_itertools installimiseks ja kasutamiseks

Samm 1) Installige more_itertools, kasutades pip (pythoni paketihaldur). Käsk on

pip install more_itertools

Step 2) Kui installimine on tehtud, importige leidke moodul, nagu allpool näidatud

from more_itertools import locate

Nüüd saate kasutada asukoha moodulit loendis, nagu on näidatud allolevas näites:

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')))

Väljund:

Originallist :  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru : [0, 3, 6]

kokkuvõte

  • Meetod list index() aitab leida antud elemendi indeksi. See on lihtsaim ja arusaadavam viis indeksi hankimiseks.
  • Meetod list index() tagastab antud elemendi indeksi.
  • Kui elementi loendis pole, annab indeks() meetod tõrketeate, näiteks ValueError: 'Element' pole loendis.
  • Lisaks sisseehitatud loendimeetodile saate indeksi hankimiseks kasutada ka muid viise, nagu loendi sirvimine, loendi mõistmine, enumerate(), filtri kasutamine jne.
  • For-loop ja while-loop kasutamine antud elemendi mitme indeksi hankimiseks.
  • Kõigi indeksite hankimiseks on kiire ja lihtne viis kasutada loendi mõistmist.
  • Loendi mõistmised on Python funktsioonid, mida kasutatakse uute jadade loomiseks.
  • Need aitavad vähendada pikemaid silmuseid ning muudavad teie koodi hõlpsamini loetavaks ja hooldatavaks.
  • Saate kasutada loendit, et saada loendisse kõik elemendi indeksid.
  • Funktsioon Enumerate() on pythoni sisseehitatud funktsioon. See võtab sisendi itereeritava objektina (st objektina, mida saab silmusesse panna) ja väljundiks on objekt, millel on iga üksuse loendur.
  • Meetod filter() filtreerib antud loendi antud funktsiooni alusel.
  • Numpy raamatukogu kasutatakse spetsiaalselt massiivide jaoks. NumPy abil saate loendis antud elemendi indeksi hankida.
  • More_itertools.locate() on veel üks pythoni teek, mis aitab antud loendi indekseid leida.

Võta see postitus kokku järgmiselt: