In Entwicklung Letztes Updateated:
Teilen:
Jira-Software ist das Projektmanagement-Tool Nr. 1, das von agilen Teams zum Planen, Verfolgen, Freigeben und Unterstützen großartiger Software verwendet wird.

In diesem Handbuch erfahren Sie, wie Sie den Index eines Elements in einer Python-Liste finden, sowohl mit einfachen Iterationen als auch mit einer integrierten Listenmethode Index().

Wenn Sie mit Python-Listen arbeiten, müssen Sie möglicherweise den Index herausfinden, an dem ein bestimmtes Element vorkommt. Sie können dies tun, indem Sie:

  • Durchlaufen der Liste und Prüfen, ob das Element am aktuellen Index gleich dem bestimmten Wert ist
  • Verwenden der integrierten Listenmethode index()

Sie lernen beides in diesem Tutorial. Fangen wir an.👩🏽‍💻

Python-Listen, Revisited

In Python ist eine Liste eine Sammlung von Elementen – mit denselben oder unterschiedlichen Datentypen. Sie sind veränderlich; Sie können sie direkt ändern, ohne sie erstellen zu müssenate eine neue Liste.

Betrachten Sie dieses Beispiel fruits: eine Liste von 5 verschiedenen Früchten.

fruits = ["apple","mango","strawberry","pomegranate","melon"]

Sie können die Länge eines beliebigen Python-Objekts abrufen, indem Sie die integrierte len() Funktion. Sie können also anrufen len() Funktion mit dem Listenobjekt (fruits) als Argument zum Abrufen der Länge, wie unten gezeigt.

len(fruits)
# Output: 5

 Wir werden das benutzen fruits list als laufendes Beispiel in diesem Tutorial.

Indizierung in Python-Listen

Python folgt zero Indizierung. In jedem Python-Iterable befindet sich also das erste Element bei Index 0, das zweite Element bei Index 1 und so weiter. Wenn die Länge des Iterables ist k, dann befindet sich das letzte Element im Index k - 1.

In Python können Sie die Funktion range() verwenden, um Indizes zu erhalten, während Sie iterables durchlaufen.

Hinweis: Wenn Sie durchschleifen range(k), erhalten Sie die Indizes 0,1,2,…,(k-1). Also per Einstellung k = len(list), erhalten Sie die Liste aller gültigen Indizes.

Die folgende Codezelle erklärt dies.

for i in range(len(fruits)):
  print(f"i:{i}, fruit[{i}] is {fruits[i]}")

# Output
i:0, fruit[0] is apple
i:1, fruit[1] is mango
i:2, fruit[2] is strawberry
i:3, fruit[3] is pomegranate
i:4, fruit[4] is melon

Nun, da wir die Grundlagen von abgedeckt haben Python-Listen Lassen Sie uns lernen, wie man den Index eines Elements in einer Liste findet.

Finden Sie den Index eines Listenelements durch Iteration mit for-Schleifen

Betrachten wir die Liste fruits von der previous Abschnitt. Wir erfahren, wie Sie mithilfe von Iteration den Index eines bestimmten Elements in dieser Liste finden for Schleife.

Verwendung von for Loop und range() Funktion

Lassen Sie uns reparieren target: der gesuchte Wert in der Liste.

Sie können verwenden for Schleife und range() Funktion, um die Liste der Indizes abzurufen 0 zu len(fruits) - 1.

  • Durchlaufen Sie die Liste der Früchte, die auf jeden Index zugreifen.
  • Überprüfen Sie, ob das Element am aktuellen Index i gleich dem Ziel ist.
  • If True, drucken Sie das aus target wurde im Index gefunden i.
fruits = ["apple","mango","strawberry","pomegranate","melon"]

target = "mango"

for i in range(len(fruits)):
  if fruits[i] == target:
   print(f"{target} found at index {i}")

# Output
mango found at index 1

In diesem Beispiel die Zielzeichenfolge 'mango' kommt genau einmal (bei Index 1) in der Liste vor fruits.

Manchmal erscheint der Zielwert jedoch mehr als einmal oder gar nicht. Um diese Fälle zu handhaben, ändern wir die obige Schleife und packen den Inhalt in eine aufgerufene Funktion find_in_list.

Verstehenanding der Funktionsdefinition

Die Funktion find_in_list hat zwei Parameter:

  • target: der Wert, nach dem Sie suchen, und
  • py_list: die Python-Liste, die Sie durchsuchen.
def find_in_list(target,py_list):
  target_indices = []
  for i in range(len(fruits)):
    if fruits[i] == target:
      target_indices.append(i)  
  if target_indices == []:
    print("Sorry, target not found!")
  else:
    print(f"{target} is found at indices {target_indices}")

Im Funktionsrumpf initialisieren wir eine leere Liste target_indices. Wir durchlaufen die Liste und greifen auf die Listenelemente zu. Wenn das Ziel an einem bestimmten Index gefunden wurde, fügen wir diesen Index dem hinzu target_indices Liste mit der append() Methode.

Hinweis: In Python, list.append(item) fügt item bis zum Ende von list.

  • Wenn das Ziel nie gefunden wird, dann target_indices ist eine leere Liste; der Benutzer wird benachrichtigt, dass das Ziel nicht in der Liste vorhanden ist.
  • Wenn das Ziel an mehr als einem Index gefunden wird, dann target_indices enthält all diese Indizes.

Als nächstes definieren wir neu fruits Liste wie abgebildet.

Diesmal suchen wir die target Schnur 'mango', die zweimal vorkommt – bei den Indizes 1 und 4.

fruits = ["apple","mango","strawberry","pomegranate","mango","melon"]
target = "mango"
find_in_list(target,fruits)

# Output
mango is found at indices [1, 4]

Beim Aufruf der Funktion find_in_list mit target und fruits Als Argumente sehen wir, dass beide Indizes zurückgegeben werden.

target = "turnip"
find_in_list(target,fruits)

# Output
Sorry, target not found!

Wenn Sie versuchen, nach zu suchen 'turnip' was in der nicht vorhanden ist fruits list erhalten Sie eine Meldung, dass das Ziel nicht gefunden wurde.

Verwendung von for-Schleife und Enumerationate() Funktion

In Python können Sie die enumerate() Funktion zum gleichzeitigen Zugriff auf den Index und die ElementeneoNormalerweise – ohne die verwenden zu müssen range() Funktion.

Die folgende Codezelle zeigt, wie Sie die verwenden können enumerate() -Funktion, um sowohl die Indizes als auch die Elemente zu erhalten.

fruits = ["apple","mango","strawberry","pomegranate","mango","melon"]
for index,fruit in enumerate(fruits):
  print(f"Index {index}: {fruit}")

# Output
Index 0: apple
Index 1: mango
Index 2: strawberry
Index 3: pomegranate
Index 4: mango
Index 5: melon

Lassen Sie uns nun die Python-Funktion neu schreiben, um den Index der Elemente in der Liste mit zu finden enumerate() Funktion.

def find_in_list(target,py_list):
  target_indices = []
  for index, fruit in enumerate(fruits):
   if fruit == target:
    target_indices.append(index) 
  if target_indices == []:
    print("Sorry, target not found!")
  else:
    print(f"{target} is found at indices {target_indices}")

Wie beim previous Abschnitt können Sie jetzt die aufrufen find_in_list Funktion mit gültigen Argumenten.

Du kannst transslate Wir werden die obige Funktionsdefinition in ein äquivalentes Listenverständnis umwandeln und das werden wir im nächsten Abschnitt tun.

Finden Sie den Index eines Listenelements durch Iteration unter Verwendung des Listenverständnisses

Listenverständnisse in Python Erlaube dir zu create Listen aus vorhandenen Listen basierend auf einer bestimmten Bedingung. Hier ist das allgemeine Konstrukt:

new_list = [<output> for <items in existing iterables> if <condition is true>] 

Die folgende Abbildung beschreibt, wie die Elemente des Listenverständnisses identifiziert werden; Damit können Sie die Funktion umwandeln find_in_list zu einem Listenverständnis.

Unter Verwendung des oben Gesagten wird der Ausdruck für das Listenverständnis zu create Zielindizes sind wie folgt.

target_indices = [index for index,fruit in enumerate(fruits) if fruit==target]

Als Übung können Sie versuchen, das obige Code-Snippet für einige andere Beispiele auszuführen.

Finden Sie den Index eines Listenelements mit der Methode index()

Um den Index eines Elements in einer Python-Liste zu finden, können Sie auch die integrierte .index() Methode. Hier ist die allgemeine Syntax:

list.index(value,start,end)

Analysieren der obigen Methode:

  • value ist der Zielwert, nach dem Sie suchen.
  • start und end sind optional Positionsargumente; Sie können sie verwenden, um den Index eines Elements im Listensegment zu suchen, beginnend bei start und erstreckt sich bis zu end - 1.

Hinweis: Das .Index() Methode gibt zurück einzige der Index der erstes Auftreten of value in list. Auch wenn Sie den Index eines Elements in einem Listensegment finden [Start: Ende-1], gibt diese Methode nur den Index zurück, der dem ersten Vorkommen des Elements entspricht.

Lasst uns revSehen Sie sich unser Beispiel an, um zu verstehen, wie das funktioniert .index() Methode funktioniert.

fruits = ["apple","mango","strawberry","pomegranate","mango","melon"]
target = "mango"

fruits.index(target)
1

Obwohl es zwei Vorkommen von gibt 'mango' der fruits Liste, Sie können sehen, dass nur der Index der zuerst Vorkommen wurde zurückgegeben.

Um den Index des zweiten Vorkommens von mango zu erhalten, können wir den Listenabschnitt von Index 2 bis Index 5 durchsuchen, wie unten gezeigt.

fruits.index(target,2,5)
4

Umgang mit ValueErrors in Python

Sehen wir uns nun an, was passiert, wenn Sie versuchen, den Index eines Elements zu finden, das nicht in der Liste vorhanden ist, sagen wir: 'carrot'.

target = "carrot"

fruits.index(target)

# Output
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-17-81bd454e44f7> in <module>()
      1 target = "carrot"
      2 
----> 3 fruits.index(target)

ValueError: 'carrot' is not in list

Wie in der Codezelle oben zu sehen ist, ist dies der Fallrows a WertFehler. In Python können Sie dies als Ausnahme behandeln, indem Sie die verwenden try und except Blöcke

Die zu verwendende allgemeine Syntax try-except ist wie folgt.

try:
  # to do this
except <ErrorType>:
  # do this to handle <ErrorType> as exception

Mit den obigen Try-Außer-Blöcken können wir damit umgehen WertFehler als eine Ausnahme.

target = "carrot"
try:
  fruits.index(target)
except ValueError:
  print(f"Sorry, could not find {target} in list")

# Output
Sorry, could not find carrot in list

Der obige Code macht folgendes:

  • Wenn das Ziel in der Liste vorhanden ist, wird der Index des Ziels zurückgegeben.
  • Wenn das Ziel nicht vorhanden ist, wird es verarbeitet WertFehler als Ausnahme und druckt die Fehlermeldung aus.

Summieren

Hier ist eine Zusammenfassung der verschiedenen Methoden, die Sie gelernt haben, um den Index eines Elements in einer Python-Liste zu finden.

  • Sie können Pythons verwenden for Schleife und Reichweite() -Funktion, um die Elemente und ihre jeweiligen Indizes abzurufen. Überprüfen Sie, ob die Elemente an den Indizes mit dem Ziel übereinstimmen.
  • Sie können auch die Tasten aufzählenate() Funktion zu simultanneoGreifen Sie normalerweise auf das Element und den Index zu. 
  • Sie können beide oben genannten Methoden innerhalb eines Listenverständnisausdrucks verwenden.
  • Um den Index eines Elements in einer Liste zu finden, können Sie auch die integrierte .Index() Methode.
  • list.index(Wert) gibt den Index des ersten Vorkommens von zurück Wert in Liste. Wenn der Wert nicht vorhanden ist, wird a ausgelöst WertFehler.
  • Mit können Sie einen bestimmten Teil der Liste durchsuchen list.index(Wert, Start, Ende) um nach dem Vorkommen eines Werts im Listensegment zu suchen [Start:Ende-1]

Als nächstes lernen Sortieren Sie ein Python-Wörterbuch nach Schlüssel oder nach Wert. Glücklich Python-Programmierung!

Teilen:
  • Bala Priya C
    Autor
    Bala Priya ist Entwickler und Techniker writer aus Indien mit über drei Jahren Erfahrung im Bereich des Schreibens technischer Inhalte. Sie teilt ihre Erkenntnisse mit der Entwickler-Community, indem sie technische Tutorials, Anleitungen und mehr verfasst.

Danke an unsere Sponsoren

Weitere großartige Lektüre zum Thema Entwicklung

Treiben Sie Ihr Geschäft an

Einige der Tools und Services, die Ihrem Unternehmen helfen grow.