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.

  • 🔘 index() metódus: A beépített index() függvény visszaadja az elem első legalacsonyabb pozícióját, és opcionális kezdő és végkorlátokat is elfogad.
  • ☑️ Értékhiba: Az index() ValueError hibát generál, ha az elem hiányzik, ezért a hívást try-ba kell zárni – kivéve a biztonságos kereséseket.
  • Minden előfordulás: Egy for, while vagy listafeldolgozási ciklus minden olyan indexet begyűjt, amelyikben egy érték ismétlődik a listán belül.
  • 🧪 Beépített segítők: Az enumerate() és a filter() függvények minden elemhez egy indexet párosítanak, tömör, egysoros módszereket kínálva az egyező pozíciók összegyűjtésére.
  • 🇧🇷 NumPy és további_itertools eszközök: Az np.where() és a more_itertools.locate() függvények nagy adathalmazok esetén hatékonyan visszaadják az összes egyező indexet.
  • 🤖 AI munkafolyamatok: A gépi tanulási folyamatok index alapján megkeresik a címkék pozícióit és a megfelelő mintákat, mielőtt a tömbök betáplálnák a modellt.

Python Lista index()

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]

GYIK

Az index() metódus ValueError hibát generál, ha az elem hiányzik. A hívást try-except blokkba kell zárni, vagy először az in operátorral kell tesztelni a tagságot, így a hiányzó érték nem okozza a program összeomlását.

Az index() által visszaadott érték mindig egy nemnegatív pozíció, a keresés kezdetétől számítva. Negatív kezdő vagy záró argumentumokat adhatsz meg a keresés korlátozásához, de maga az index() soha nem ad vissza negatív indexet a talált elemre.

Igen. az index() pontosan összehasonlítja az elemeket, tehát 'GuruA ' és a 'guru' különböző értékként kezelendők. A rossz kis- és nagybetűkeresés ValueError hibát okoz. Normalizáld a karakterláncokat a lower() függvénnyel a keresés előtt, ha kis- és nagybetűket nem megkülönböztető egyezésre van szükséged.

Használja az in operátort, például, ha 'Guru' a my_list-ben. Igaz vagy Hamis értéket ad vissza hiba nélkül, így az index() függvényt csak akkor hívhatod meg biztonságosan, ha az elem ténylegesen jelen van a listában.

Egyetlen keresés esetén a beépített index() már hatékony, mivel az első találatnál megáll. Több érték ismételt megtalálásához készítsünk szótártérképet.ping minden értéket az indexéhez rendel, ami minden keresést gyors, konstans idejű műveletté alakít.

Python A listák rendelkeznek index() metódussal, de nincs find() metódusuk. Az index() ValueError hibát generál, ha az elem hiányzik, míg a find() karakterlánc -1 értéket ad vissza. Listák esetén a hibát kell elkapni, vagy a tagságot az in operátorral kell ellenőrizni.

Egy elem indexének megkeresése segít a kategorikus címkék numerikus pozíciókhoz való leképezésében, egy előre jelzett osztály megjelenésének megtalálásában, vagy a jellemzőoszlopok igazításában a betanítás előtt. A NumPy ezt az np.where() függvénnyel bővíti ki a gyors indexkereséshez nagy tömbökben és adathalmazokban.

Igen. A GitHub Copilot és az ügynöki AI asszisztensek index(), enumerate() és értelmezés-alapú kereséseket generálnak egy egyszerű megjegyzésből, biztonságos hibakezelést javasolnak a hiányzó értékekhez, és refaktorálják a ciklusokat, bár továbbra is tesztelni kell a szélső eseteket és meg kell erősíteni a visszaadott pozíciókat.

Foglald össze ezt a bejegyzést a következőképpen: