logo

Python | Manieren om waarde-indexen in de lijst te vinden

Meestal moeten we de index vinden waarin de specifieke waarde zich bevindt. Er zijn veel methoden om dat te bereiken, met behulp van index(), enz. Maar soms is het nodig om alle indices van een bepaalde waarde te vinden als deze meerdere keren voorkomt in de lijst. Laten we bepaalde manieren bespreken om waarde-indices te vinden in de gegeven lijst van Python .

Manieren om waarde-indexen in de lijst te vinden

Hieronder staan ​​​​de methoden die we in dit artikel zullen behandelen:



Vind de index van een item met behulp van de naïeve methode

We kunnen deze taak volbrengen door de lijst te doorlopen en op die waarde te controleren en de waarde-index gewoon aan een nieuwe lijst toe te voegen en die af te drukken. Dit is de basismethode met brute kracht om deze taak te volbrengen.

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

>

>

Uitvoer

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

Tijdcomplexiteit: Op)
Hulpruimte: Op)

git push-opdracht

Vind de index van een item met behulp van Lijstbegrip

Lijstbegrip is slechts de verkorte techniek om de brute force-taak te volbrengen, gebruikt slechts kleinere regels codes om de taak te volbrengen en bespaart daardoor tijd voor programmeurs.

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

>

>

Uitvoer

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

Tijdcomplexiteit: Op)
Hulpruimte: Op)

Zoek de index van een item met Enumerate() F zalving

Gebruik makend van opsommen() we kunnen een soortgelijke taak uitvoeren, dit is een iets snellere techniek dan hierboven en wordt daarom aanbevolen om te gebruiken in plaats van de techniek voor het begrijpen van lijsten.

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

>

>

Uitvoer

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

Tijdcomplexiteit: Op)
Hulpruimte: Op)

Zoek de index van een item met behulp van filter() F zalving

Dit is nog een andere methode die kan worden gebruikt om deze specifieke taak te volbrengen, filter() is doorgaans in staat de filtertaken uit te voeren en kan daarom in deze situatie ook worden gebruikt om deze taak te volbrengen.

Java Compareto-methode

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

>

>

Uitvoer

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

Tijdcomplexiteit: Op)
Hulpruimte: Op)

Zoek de index van een item met behulp van de numpy-bibliotheek

Dit programma maakt gebruik van de numpige bibliotheek om een ​​gegeven lijst naar een array te converteren, vindt de indices van de gegeven waarde in de array en converteert de resulterende numpy-array terug naar een lijst. Ten slotte drukt het de lijst met indices af.

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

>

>

UITGANG:

New indices list : [1, 3]>

Tijdcomplexiteit: O(n), waarbij n de lengte van de invoerlijst is.
Hulpruimte: O(n), omdat er een nieuwe numpy-array wordt gemaakt met dezelfde lengte als de invoerlijst.

Zoek de index van een item met behulp van een for-lus

Initialiseer een lege lijst met de naam res_list om de indices van de doelwaarden op te slaan. Doorloop elk element in de invoerlijst test_list met behulp van een for-lus. Als het huidige element overeenkomt met de doelwaarde, voeg dan de index ervan toe aan de res_list. Nadat de lus is voltooid , retourneer de res_list als uitvoer.

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

>

>

Uitvoer

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

Tijdcomplexiteit: O(n) , waarbij n de lengte is van de invoerlijst test_list.
Hulpruimte: O(k) , waarbij k het aantal keren is dat de doelwaarde voorkomt.

Zoek de index van een item met behulp van de list.index()-methode met een while-lus

Initialiseer een lege lijstindexen om de indices van de gegeven waarde op te slaan. Initialiseer een variabele i naar -1. Voer een while-lus uit die doorgaat totdat de break-instructie wordt aangetroffen. Gebruik binnen de while-lus de lijst.index() methode om de index van de gegeven waarde in de lijst te vinden, beginnend bij index i + 1. Als de index wordt gevonden, voeg deze dan toe aan de lijst met indexen en werk de waarde van i bij naar de gevonden index. Als de index niet wordt gevonden, verbreek dan de while-lus. Druk de indexenlijst af.

Python3




op Java
# 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))>

>

>

Uitvoer

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

Tijdcomplexiteit: O(n), De methode list.index() heeft in het ergste geval een tijdscomplexiteit van O(n), omdat deze door de lijst moet doorlopen om de index van de gegeven waarde te vinden. De while-lus heeft ook een tijdscomplexiteit van O(n) in het ergste geval, omdat het de lijst moet doorlopen om alle exemplaren van de gegeven waarde te vinden.
Hulpruimte: O(1),De ruimte die wordt gebruikt door de indexenlijst en de i-variabele is constant en hangt niet af van de grootte van de invoerlijst, dus de complexiteit van de hulpruimte is O(1).