Python Az index() listázása a példával

A lista egy olyan tároló, amely különböző adattípusú elemeket (ints, float, Boolean, karakterláncok stb.) tárol rendezett sorrendben. Ez egy fontos adatstruktúra, amely be van építve Python. Az adatokat szögletes zárójelbe ([]) írjuk, és az értékeket vesszővel (,) választjuk el.

A listán belüli elemek az első 0-tól kezdődő elemekkel indexelve vannak. A létrehozott listán új elemek hozzáadásával vagy a meglévők frissítésével, törlésével módosíthatunk. Lehetnek ismétlődő elemek és egy beágyazott lista is.

A listán számos módszer áll rendelkezésre, és a legfontosabb az index().

Python Lista index()

A list index() metódus segít megtalálni az adott elem első legalacsonyabb indexét. Ha a listán belül ismétlődő elemek vannak, akkor az elem első indexe kerül visszaadásra. Ez a legegyszerűbb és legegyszerűbb módja az index beszerzésének.

A beépített list index() metóduson kívül más módokat is használhat az index beszerzésére, például a listában való körözéssel, listamegértésekkel, enumerate(), szűrési módszerekkel.

A list index() metódus az adott elem első legalacsonyabb indexét adja vissza.

Szintaxis

list.index(element, start, end)

paraméterek

paraméterek Leírás
elem Az indexet lekérni kívánt elem.
kezdet Ez a paraméter nem kötelező. Megadhatja a start: indexet az elem kereséséhez. Ha nincs megadva, az alapértelmezett érték 0.
végén Ez a paraméter nem kötelező. Megadhatja a keresendő elem végindexét. Ha nem adják meg, akkor a lista végéig figyelembe kell venni.

Visszatérési érték

A list index() metódus az adott elem indexét adja vissza. Ha az elem nem szerepel a listában, az index() metódus hibát jelez, például ValueError: Az 'Elem' nincs a listában.

Példa: Az adott elem indexének megtalálása.

A my_list = ['A', 'B', 'C', 'D', 'E', 'F'] listában szeretnénk tudni a C és F elem indexét.

Az alábbi példa bemutatja, hogyan szerezheti be az indexet.

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

output:

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

Példa: Kezdés és vég használata az index()-ben

Ebben a példában megpróbálja korlátozni az index keresését egy listában a kezdő és záró index használatával.

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

output:

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

Példa: Az index() metódus tesztelése olyan elemmel, amely nincs jelen.

Ha olyan elemre próbál indexet keresni a listában, amely nem található meg, az alábbi hibaüzenetet kapja:

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

output:

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 használata a lista elemeinek indexének lekéréséhez

A list.index() metódussal láttuk, hogy az argumentumként átadott elem indexét adja meg.

Most tekintse a listát a következőnek: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']. A „Guru” név 3-szor szerepel az indexben, és az összes „Guru” nevű indexet szeretném.

A for-loop használatával meg kell tudni szerezni a több indexet, amint az az alábbi példában látható.

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)

output:

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

A while ciklus és a list.index() használata

A while ciklus segítségével végigpörgeti a listát, hogy megkapja az adott elem összes indexét.

A listában: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'], szükségünk van a 'Guru' elem összes indexére.

Az alábbiakban egy példa bemutatja, hogyan szerezheti be az összes indexet a while ciklus használatával

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)

output:

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

Listamegértés használata a lista elem indexének lekéréséhez

Az összes index beszerzéséhez egy gyors és egyszerű módja a lista megértésének használata.

A listaértések azok Python olyan függvények, amelyeket új sorozatok létrehozására használnak (például listák, szótárak stb.), azaz a már létrehozott sorozatok felhasználásával.

Segítenek csökkenteni a hosszabb ciklusokat, és könnyebben olvashatóvá és karbantarthatóvá teszik a kódot.

A következő példa bemutatja, hogyan kell csinálni:

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)

output:

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

Az Enumerate használata a lista elemeinek indexének lekéréséhez

Az Enumerate() függvény a pythonhoz elérhető beépített függvény. Használhatja az enumerate funkciót, hogy az elem összes indexét egy listában kapja meg. A bemenetet iterálható objektumként veszi fel (azaz olyan objektumként, amely hurkolható), a kimenet pedig egy objektum, amely minden elemhez számlálót tartalmaz.

A következő példa bemutatja, hogyan használhatja az enumerate egy listát az adott elem összes indexének lekéréséhez.

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

output:

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

Szűrő használata a lista elemeinek indexének lekéréséhez

A filter() metódus a megadott függvény alapján szűri az adott listát. A lista minden eleme átkerül a függvényhez, és a szükséges elemeket a függvényben megadott feltétel alapján szűrjük.

Használjuk a filter() metódust, hogy az adott elem indexeit megkapjuk a listában.

A következő példa bemutatja, hogyan használhatja a szűrőt egy listán.

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)

output:

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

A NumPy használata egy lista elemének indexének lekéréséhez

A NumPy könyvtárat kifejezetten tömbökhöz használják. Tehát itt a NumPy-t fogjuk használni, hogy megkapjuk a szükséges elem indexét a megadott listából.

A NumPy használatához telepítenünk kell és importálnunk kell.

Íme a lépések ehhez:

Step 1) Telepítse a NumPy-t

pip install numpy

Step 2) Importálja a NumPy modult.

import numpy as np

Step 3) Használja az np.array-t a lista tömbbé alakításához

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

Step 4) Szerezze be a kívánt elem indexét aznp.where() segítségével

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

A végső munkakód a kimenettel a következő:

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)

output:

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

A more_itertools.locate() használata a lista elemeinek indexének lekéréséhez

A more_itertools.locate() segít megtalálni az elem indexeit a listában. Ez a modul a python 3.5+ verziójával fog működni. A csomag more_itertools használatához először telepíteni kell.

Az alábbiakban bemutatjuk a more_itertools telepítésének és használatának lépéseit

1. lépés) Telepítse a more_itertools fájlt a pip (python csomagkezelő) segítségével. A parancs az

pip install more_itertools

Step 2) A telepítés befejezése után importálja a elhelyez modult az alábbiak szerint

from more_itertools import locate

Most már használhatja a helymeghatározási modult egy listán, az alábbi példában látható módon:

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

output:

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

Összegzésként

  • A list index() metódus segít megtalálni az adott elem indexét. Ez a legegyszerűbb és legegyszerűbb módja az index beszerzésének.
  • A list index() metódus az adott elem indexét adja vissza.
  • Ha az elem nem szerepel a listában, az index() metódus hibát jelez, például ValueError: 'Elem' nincs a listában.
  • A beépített lista metóduson kívül más módokat is használhat az index lekérésére, mint például a lista átpörgetése, a lista megértése, az enumerate(), szűrő használata stb.
  • For-loop és while-loop használata egy adott elem többszörös indexének lekéréséhez.
  • Az összes index beszerzéséhez egy gyors és egyszerű módja a lista megértésének használata.
  • A listaértések azok Python függvények, amelyeket új sorozatok létrehozására használnak.
  • Segítenek csökkenteni a hosszabb ciklusokat, és könnyebben olvashatóvá és karbantarthatóvá teszik a kódot.
  • Használhatja az enumerate funkciót, hogy az elem összes indexét egy listában kapja meg.
  • Az Enumerate() függvény a pythonhoz elérhető beépített függvény. A bemenetet iterálható objektumként veszi fel (azaz olyan objektumként, amely hurkolható), a kimenet pedig egy objektum, amely minden elemhez számlálót tartalmaz.
  • A filter() metódus a megadott függvény alapján szűri az adott listát.
  • A Numpy könyvtárat kifejezetten tömbökhöz használják. A NumPy segítségével megkaphatja a listában megadott elem indexét.
  • A more_itertools.locate() egy újabb python könyvtár, amely segít megtalálni a megadott lista indexeit.