Introductie

Lijsten zijn op verschillende manieren nuttig in vergelijking met andere datatypes, omdat ze zo veelzijdig zijn. In dit artikel bekijken we een van de meest voorkomende bewerkingen met lijsten – het vinden van de index van een element.

We bekijken verschillende scenario’s voor het vinden van een element, d.w.z. het vinden van de eerste, laatste en alle occurrences van een element. En ook wat er gebeurt als het element dat we zoeken niet bestaat.

Gebruik van de index() functie

De element parameter stelt natuurlijk het element voor dat we zoeken. De parameters start en end zijn optioneel en geven het bereik van de indices aan waarin we zoeken naar de element.

De standaardwaarde voor start is 0 (zoeken vanaf het begin), en de standaardwaarde voor end is het aantal elementen in de lijst (zoeken tot het einde van de lijst).

De functie geeft de eerste positie van de element in de lijst die het kon vinden, ongeacht hoeveel gelijke elementen er na het eerste voorkomen zijn.

De eerste keer dat een element voorkomt vinden

Met de functie index() zonder waarden in te stellen voor start en end krijgen we de eerste verschijning van de element die we zoeken:

my_list = first_occurrence = my_list.index('b')print("First occurrence of 'b' in the list: ", first_occurrence)

Wat ons de verwachte uitvoer zou geven:

First occurrence of 'b' in the list: 1

Alle voorkomens van een element vinden

Om alle voorkomens van een element te vinden, kunnen we de optionele parameter start gebruiken, zodat we alleen in bepaalde segmenten van de lijst zoeken.

Zeg bijvoorbeeld dat we het eerste voorkomen van een element op index 3 zouden vinden. Om het volgende element te vinden, moeten we verder zoeken naar het eerste voorkomen van dat element na index 3. We herhalen dit proces, waarbij we de plaats waar we zoeken veranderen, zolang we nieuwe voorkomens van het element vinden:

Het uitvoeren van deze code zou ons het volgende opleveren:

The element was found at: 

We moesten hier een try blok gebruiken, omdat de index() functie een fout geeft als het de gespecificeerde element niet kan vinden in het gegeven bereik. Dit is misschien ongebruikelijk voor ontwikkelaars die meer gewend zijn aan andere talen, omdat functies als deze meestal -1null teruggeven als het element niet kan worden gevonden.

In Python moeten we echter voorzichtig zijn en een try blok gebruiken als we deze functie gebruiken.

Een andere, meer nette manier om ditzelfde te doen zou zijn door list comprehension te gebruiken en de index() functie helemaal te negeren:

Wat ons dezelfde output zou geven als voorheen. Deze aanpak heeft als bijkomend voordeel dat het try blok niet wordt gebruikt.

Het laatste element in de lijst vinden

Als je het laatste element in de lijst wilt vinden, zijn er twee manieren om dit te doen met de index() functie:

  • Reverseer de lijst en zoek naar het eerste voorkomen in de omgekeerde lijst
  • Ga door alle voorkomen van het element, en houd alleen het laatste voorkomen bij

Met betrekking tot de eerste benadering, als we het eerste voorkomen van de element in een omgekeerde lijst wisten, zouden we de positie van het laatste voorkomen in de oorspronkelijke kunnen vinden. Meer specifiek kunnen we dit doen door reversed_list_index - 1 af te trekken van de lengte van de oorspronkelijke lijst:

Wat ons de gewenste uitvoer zou geven:

6

Wat de tweede benadering betreft, kunnen we de code die we hebben gebruikt om alle occurrences te vinden, aanpassen en alleen de laatst gevonden occurrence bijhouden:

Wat ons dezelfde output zou geven:

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *