Python Az index() listázása a példával
⚡ Okos összefoglaló
Python A list index() függvény egy adott elem első pozícióját adja vissza, míg a loo függvényping A konstrukciók, listaelemzések, enumerate(), filter(), a NumPy könyvtár és a more_itertools.locate() kiterjesztik ezt a technikát, hogy összegyűjtsék az összes egyező indexet egy listában, amely ismétlődő értékeket tartalmaz.

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.
Sokféle metódus érhető el egy listában, és az egyik 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ódus mellett más módszereket is használhatsz az index lekérésére, például a loo metódust.ping a listán keresztül, listaértelmezések, enumerate() és filter metódusok használatával.
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 opcionális. Megadhatja az elem keresésének kezdőindexét. 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 elemek 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áljuk korlátozni az index keresését egy listában a kezdő és a 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 egy hiányzó elemmel.
Amikor egy olyan elemet próbálsz meg keresni a listában, amely nem szerepel, az alábbi hibaüzenetet kapod:
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 tekintsük a listát a következőképpen: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']. A név 'GuruA ' háromszor szerepel az indexben, és az összes ' nevű indexet szeretném.Guru".
A for ciklus használatával a lenti példában látható módon több indexet kell lekérnünk.
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 ' elem összes indexéreGuru".
Az alábbi példa bemutatja, hogyan lehet az összes indexet lekérni egy 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 ezt 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 egy beépített függvény, amely a következővel érhető el: PythonAz enumerate függvénnyel lekérheted egy lista elemének összes indexét. A bemenete egy iterálható objektum (azaz egy ciklusba visszajátszható objektum), a kimenete pedig egy olyan objektum, amelynek minden eleméhez tartozik egy számláló.
A következő példa bemutatja, hogyan használható az enumerate metódus egy listán egy 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álhatunk 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. Itt tehát a NumPy-t fogjuk használni a megadott listából a szükséges elem indexének kinyerésére.
A NumPy használatához telepítenünk kell és importálnunk kell.
Íme a lépések ugyanehhez:
Step 1) Telepítse a NumPy-t
pip install numpy
Step 2) Importálja a NumPy modult.
import numpy as np
Step 3) Használd az np.array függvényt 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) Az np.where() függvénnyel szerezd meg a kívánt elem indexét.
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]
Egy listaelem indexének lekérése a more_itertools.locate() függvény használatával
A more_itertools.locate() segít megtalálni a listában lévő elem indexeit. Ez a modul a következővel fog működni: Python 3.5+ verzió. A csomag more_itertools használatához először telepíteni kell.
A more_itertools telepítésének és használatának lépései a következők:
Step 1) Telepítse a more_itertools programot a pip ( használatávalPython csomagkezelő). A parancs a következő:
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]
