logo

Python | Möglichkeiten, Wertindizes in Listen zu finden

Normalerweise müssen wir den Index finden, in dem sich der jeweilige Wert befindet. Es gibt viele Methoden, um dies zu erreichen, indem index() usw. verwendet wird. Manchmal ist es jedoch erforderlich, alle Indizes eines bestimmten Werts zu finden, falls dieser mehrfach in der Liste vorkommt. Lassen Sie uns bestimmte Möglichkeiten besprechen, um Wertindizes in der angegebenen Liste zu finden Python .

Möglichkeiten, Wertindizes in der Liste zu finden

Nachfolgend sind die Methoden aufgeführt, die wir in diesem Artikel behandeln:



Finden Sie den Index eines Elements mit der naiven Methode

Wir können diese Aufgabe erreichen, indem wir die Liste durchlaufen, nach diesem Wert suchen und einfach den Wertindex in eine neue Liste einfügen und diesen ausdrucken. Dies ist die grundlegende Brute-Force-Methode, um diese Aufgabe zu lösen.

Python3








# initializing list> test_list>=> [>1>,>3>,>4>,>3>,>6>,>7>]> # printing initial list> print>(>'Original list : '> +> str>(test_list))> # using naive method to find indices for 3> res_list>=> []> for> i>in> range>(>0>,>len>(test_list)):> >if> test_list[i]>=>=> 3>:> >res_list.append(i)> # printing resultant list> print>(>'New indices list : '> +> str>(res_list))>

>

>

Ausgabe

Original list : [1, 3, 4, 3, 6, 7] New indices list : [1, 3]>

Zeitkomplexität: An)
Hilfsraum: An)

Java-Grundlagen

Finden Sie den Index eines Elements mithilfe des Listenverständnisses

Listenverständnis ist lediglich die Abkürzungstechnik, um die Brute-Force-Aufgabe zu erfüllen. Sie benötigt nur weniger Codezeilen, um die Aufgabe zu erfüllen, und spart Programmierern somit Zeit.

Python3




# initializing list> test_list>=> [>1>,>3>,>4>,>3>,>6>,>7>]> # printing initial list> print>(>'Original list : '> +> str>(test_list))> # using list comprehension> # to find indices for 3> res_list>=> [i>for> i>in> range>(>len>(test_list))>if> test_list[i]>=>=> 3>]> # printing resultant list> print>(>'New indices list : '> +> str>(res_list))>

>

>

Ausgabe

Original list : [1, 3, 4, 3, 6, 7] New indices list : [1, 3]>

Zeitkomplexität: An)
Hilfsraum: An)

Finden Sie den Index eines Elements mit Enumerate() F Salbung

Benutzen aufzählen() Wir können eine ähnliche Aufgabe lösen. Dies ist eine etwas schnellere Technik als oben und wird daher empfohlen, sie anstelle der Listenverständnistechnik zu verwenden.

Python3




# initializing list> test_list>=> [>1>,>3>,>4>,>3>,>6>,>7>]> # printing initial list> print>(>'Original list : '> +> str>(test_list))> # using enumerate()> # to find indices for 3> res_list>=> [i>for> i, value>in> enumerate>(test_list)>if> value>=>=> 3>]> # printing resultant list> print>(>'New indices list : '> +> str>(res_list))>

>

>

Ausgabe

Original list : [1, 3, 4, 3, 6, 7] New indices list : [1, 3]>

Zeitkomplexität: An)
Hilfsraum: An)

Finden Sie den Index eines Elements mit filter() F Salbung

Dies ist eine weitere Methode, die zur Lösung dieser speziellen Aufgabe eingesetzt werden kann. Filter() ist in der Regel in der Lage, die Filteraufgaben auszuführen und kann daher auch in dieser Situation zur Erfüllung dieser Aufgabe eingesetzt werden.

Python3




# initializing list> test_list>=> [>1>,>3>,>4>,>3>,>6>,>7>]> # printing initial list> print>(>'Original list : '> +> str>(test_list))> # using filter() to find indices for 3> res_list>=> list>(>filter>(>lambda> x: test_list[x]>=>=> 3>,>range>(>len>(test_list))))> # printing resultant list> print>(>'New indices list : '> +> str>(res_list))>

>

numpy bedeuten

>

Ausgabe

Original list : [1, 3, 4, 3, 6, 7] New indices list : [1, 3]>

Zeitkomplexität: An)
Hilfsraum: An)

Finden Sie den Index eines Elements mithilfe der Numpy-Bibliothek

Dieses Programm verwendet die Numpy-Bibliothek Um eine gegebene Liste in ein Array umzuwandeln, sucht er die Indizes des gegebenen Werts im Array und konvertiert das Ergebnis Numpy-Array zurück zu einer Liste. Abschließend wird die Liste der Indizes gedruckt.

Python3




import> numpy as np> test_list>=> [>1>,>3>,>4>,>3>,>6>,>7>]> # convert the list to a numpy array> test_array>=> np.array(test_list)> # find the indices of the value 3 in the array> res_array>=> np.where(test_array>=>=> 3>)[>0>]> # convert the numpy array back to a list> res_list>=> list>(res_array)> # printing resultant list> print>(>'New indices list : '> +> str>(res_list))>

>

>

AUSGABE:

New indices list : [1, 3]>

Zeitkomplexität: O(n), wobei n die Länge der Eingabeliste ist.
Nebenraum: O(n), weil dadurch ein neues Numpy-Array mit derselben Länge wie die Eingabeliste erstellt wird.

Finden Sie den Index eines Elements mithilfe einer for-Schleife

Initialisieren Sie eine leere Liste namens „res_list“, um die Indizes der Zielwerte zu speichern. Durchlaufen Sie jedes Element in der Eingabeliste „test_list“ mithilfe einer for-Schleife. Wenn das aktuelle Element mit dem Zielwert übereinstimmt, hängen Sie seinen Index an „res_list“ an. Nachdem die Schleife beendet ist , geben Sie die res_list als Ausgabe zurück.

Python3




# initializing list> test_list>=> [>1>,>3>,>4>,>3>,>6>,>7>]> # printing initial list> print>(>'Original list: '> +> str>(test_list))> # using a for loop to find indices for 3> res_list>=> []> for> i>in> range>(>len>(test_list)):> >if> test_list[i]>=>=> 3>:> >res_list.append(i)> # printing resultant list> print>(>'New indices list: '> +> str>(res_list))>

>

>

Ausgabe

Original list: [1, 3, 4, 3, 6, 7] New indices list: [1, 3]>

Zeitkomplexität: O(n) , wobei n die Länge der Eingabeliste test_list ist.
Hilfsraum: O(k) , wobei k die Anzahl der Vorkommen des Zielwerts ist.

Finden Sie den Index eines Elements mithilfe der Methode list.index() mit einer While-Schleife

Initialisieren Sie eine leere Liste mit Indizes, um die Indizes des angegebenen Werts zu speichern. Initialisieren Sie eine Variable i auf -1. Führen Sie eine While-Schleife aus, die fortgesetzt wird, bis die Break-Anweisung angetroffen wird. Verwenden Sie innerhalb der While-Schleife die list.index() Methode, um den Index des angegebenen Werts in der Liste beginnend mit Index i + 1 zu finden. Wenn der Index gefunden wird, hängen Sie ihn an die Indexliste an und aktualisieren Sie den Wert von i auf den gefundenen Index. Wenn der Index nicht gefunden wird, unterbrechen Sie ihn die while-Schleife. Drucken Sie die Indexliste.

Python3




Verbindung Java MySQL
# initializing list> my_list>=> [>1>,>3>,>4>,>3>,>6>,>7>]> # printing initial list> print>(>'Original list : '> +> str>(my_list))> # using list.index() method with a while loop to find indices for 3> indexes>=> []> i>=> ->1> while> True>:> >try>:> >i>=> my_list.index(>3>, i>+> 1>)> >indexes.append(i)> >except> ValueError:> >break> print>(>'New indices list : '> +> str>(indexes))>

>

>

Ausgabe

Original list : [1, 3, 4, 3, 6, 7] New indices list : [1, 3]>

Zeitkomplexität: O(n), Die Methode list.index() hat im schlimmsten Fall eine Zeitkomplexität von O(n), da sie die Liste durchlaufen muss, um den Index des angegebenen Werts zu finden. Die while-Schleife hat auch eine Zeitkomplexität von O(n) im schlimmsten Fall, da die Liste durchlaufen werden muss, um alle Vorkommen des angegebenen Werts zu finden.
Hilfsraum: O(1),Der von der Indexliste und der i-Variablen verwendete Speicherplatz ist konstant und hängt nicht von der Größe der Eingabeliste ab, sodass die Komplexität des Hilfsraums O(1) beträgt.