Python Enumerate: En forklaring med eksempler

Arbeid med lister og andre gjentakbare objekter er en vanlig oppgave i . Noen ganger kan det hende du må gå gjennom disse iterablene samtidig som du holder styr på indeksen eller antallet av det gjeldende elementet. Det er der Pythons innebygde enumerate()-funksjon kommer til unnsetning.

Enumerate()-funksjonen i Python gir deg en praktisk måte å få tilgang til både indeksen til et element og selve elementet når du går over en liste, eller et gjentakbart objekt.

Python Enumerate: En forklaring med eksempler

Denne funksjonen gjør din , lesbar og effektiv. Den lar deg gå gjennom elementer og hente både indeks og verdi. I stedet for å initialisere og øke en teller manuelt i loopen, kan du stole på enumerate() for å gjøre jobben for deg.

I denne artikkelen vil du lære om Pythons innebygde funksjon enumerate()-funksjonen, dens betydning i Python- koden og brukstilfellene.

La oss komme inn i det!

Innholdsfortegnelse

Hva er Python Enumerate Function?

Tenk deg at du jobber med en listedatastruktur og du vil gjøre noe med hvert element, men du må også vite plasseringen til elementet i listen.

Uten Python enumerate(), kan du bestemme deg for å bruke en tellervariabel som du øker i hver loop-iterasjon. Men denne tilnærmingen kan være utsatt for feil, og den er ikke veldig "pytonisk".

Enumerate er en innebygd funksjon i Python som lar deg iterere over iterable objekter mens du holder styr på indeksen til gjeldende element.

Nå som du har forstått hva enumerate()-funksjonen i Python er, la oss gå videre til syntaksen til Python enumerate()-funksjonen i neste seksjon!

Hva er syntaksen til Python Enumerate-funksjonen?

Syntaksen til en funksjon definerer hvordan du skal bruke den funksjonen i koden din, inkludert hvilke argumenter den tar og hva den returnerer.

Python Enumerate: En forklaring med eksempler

Enumerate () -funksjonen tar følgende syntaks:

enumerate(, start=0)
  • : Dette er en nødvendig parameter og kan være en hvilken som helst Python-iterbar, for eksempel en liste eller tuppel.

  • start : Denne andre parameteren er en valgfri parameter som spesifiserer startverdien til telleren. Som standard er den satt til 0.

Enumerate () -funksjonens returverdi er et enumerate-objekt, som er en iterator som har par av (indeks, element) for hvert element i den gitte iterable.

Du kan bruke denne iteratoren i a for å få tilgang til både indeksen og elementet samtidig.

Følgende eksempel viser hvordan du kan bruke funksjonen enumerate() med en liste:

fruits = ['apple', 'banana', 'cherry']

for index, item in enumerate(fruits):
    print(index, item)

I dette eksemplet går enumerate() gjennom enumerate-objektene, dvs. fruktlisten , og tildeler en indeks til hvert element, med start fra 0.

For - løkken pakker deretter ut indeksen og elementet fra det oppregnede objektet. Dette lar deg utføre operasjoner basert på både indeksen og varens verdi.

Vi bruker utskriftsfunksjonen til å skrive ut indeksen og varen på skjermen. Utgangen av koden er gitt i bildet nedenfor:

Python Enumerate: En forklaring med eksempler

I utdataene kan du se at startindeksen er 0. Dette er standardverdien til indeksen som automatisk tildeles av Python-tolken.

Du kan imidlertid også angi en annen startverdi for telleren ved å angi den valgfrie startparameteren som vist i koden nedenfor:

for index, item in enumerate(fruits, start=1):
    print(index, item)

Utgangen vil være lik den ovenfor. Den eneste forskjellen vil være at indeksen nå starter på 1.

Python Enumerate: En forklaring med eksempler

Så nå har du grep om syntaksen til enumerate()-funksjonen i Python. Men, som med alle verktøy, er det viktig å vite når og hvor du skal bruke det.

Det er derfor vi skal utforske noen vanlige brukstilfeller for funksjonen enumerate() i neste avsnitt!

5 Brukstilfeller av Python Enumerate-funksjonen

Enumerate-funksjonen i Python er mye brukt i scenarier der både indeksen og verdien til et iterbart objekt er av betydning for programmereren.

Vi har listet opp noen av de vanlige brukstilfellene for å telle opp funksjoner i Python nedenfor.

1. Hvordan bruke Enumerate med Python-lister

I Python er a en innebygd datastruktur som lar deg lagre flere elementer i en enkelt variabel. Tenk på en liste som en beholder hvor du kan legge inn forskjellige varer, og de opprettholder rekkefølgen.

Enumerate()-funksjonen kan brukes på lister på en rekke måter, for eksempel:

A. Tilgang til listeelementer og deres indekser med Python Enumerate

En av de vanligste brukstilfellene for enumerate() er når du trenger tilgang til både elementene i en liste og deres indekser. Enumerate lar deg gjøre dette på en ren og effektiv måte.

Følgende er et eksempel på tilgang til elementer i en liste og deres indekser:

fruits = ['apple', 'banana', 'mango', 'grape', 'orange']
for index, fruit in enumerate(fruits):
    print(f"At index {index}, the fruit is {fruit}.")

Utdataene til denne koden er gitt i bildet nedenfor:

Python Enumerate: En forklaring med eksempler

B. Endre listeelementer med Python Enumerate

Når du trenger å endre elementene i en liste basert på deres indeks, er enumerate() et utmerket verktøy. Du kan få tilgang til indeksen i loopen og bruke den til å endre listen.

Følgende er et eksempel på endring av listeelementer med enumerate-funksjonen:

numbers = [1, 2, 3, 4, 5]

for i, num in enumerate(numbers):
    numbers[i] = num * 2

Denne Python-koden lager en liste med tall fra 1 til 5. Deretter bruker den en for-løkke og enumerate()-funksjonen for å iterere over listen.

For hver iterasjon multipliserer den gjeldende nummer (tall) med 2 og tilordner det til samme posisjon i listen (tall[i]).

Resultatet er at hvert tall i den opprinnelige listen dobles som vist på bildet nedenfor:

Python Enumerate: En forklaring med eksempler

C. Sammenligning av elementer i to lister med Python Enumerate

Hvis du sammenligner elementer i to forskjellige lister, kan enumerate() gi indeksen du trenger for å få tilgang til elementer i begge listene samtidig.

Følgende er et eksempel på bruk av enumerate-funksjonen for å sammenligne elementer i to lister:

list1 = [1, 2, 3, 4, 5]
list2 = [1, 2, 3, 0, 5]
for i, value in enumerate(list1):
    if value != list2[i]:
        print(f"Difference at index {i}: {value} (list1) vs {list2[i]} (list2)")

I denne koden definerer vi først to lister, liste1 og liste2. Deretter itererer vi gjennom liste1 ved å bruke en for-løkke med enumerate(), som gir indeksen (i) og verdien til hvert element.

Hvis det gjeldende elementet i liste1 ikke samsvarer med det tilsvarende elementet i liste2, skrives det ut indeksen for forskjellen og de forskjellige verdiene fra begge listene.

Resultatet av denne koden vises nedenfor:

Python Enumerate: En forklaring med eksempler

2. Hvordan bruke Enumerate med Python Tuples

En tuppel i Python er en ordnet samling av elementer, som ligner på en liste. Den eneste forskjellen er at en tuppel er uforanderlig, noe som betyr at du ikke kan endre innholdet etter opprettelsen.

Følgende er noen av tilfellene der du kan bruke enumerate med Python-tupler.

A. Bruke Python Enumerate() for å finne et element i en tuppel

Når du arbeider med tuples i Python, må du kanskje finne ut om det finnes et element i en tuppel.

Følgende eksempelkode demonstrerer bruk av enumerate for å finne elementer i en tuppel:

fruits = ('apple', 'banana', 'mango', 'grape', 'orange')
for i, fruit in enumerate(fruits):
    if fruit == 'mango':
        print(f"'mango' found at position {i}")

Denne koden vil skrive ut "'mango' funnet i posisjon 2" fordi 'mango' er på indeks 2 i tupelen.

Python Enumerate: En forklaring med eksempler

B. Bruke Python Enumerate() for å lage en ordbok fra en tuppel

Hvis du har en tuppel og du trenger å forvandle den til en ordbok, kan Pythons enumerate()-funksjon være ditt gå-til-verktøy.

Eksempelkoden viser hvordan du kan lage en ordbok fra en tuppel ved å bruke enumerate:

fruits = ('apple', 'banana', 'mango', 'grape', 'orange')

fruit_dict = {i: fruit for i, fruit in enumerate(fruits)}
print(fruit_dict)

Denne koden vil skrive ut en ordbok der nøklene er indeksene og verdiene er elementene fra tuppelen.

Python Enumerate: En forklaring med eksempler

3. Hvordan bruke Enumerate med Python Dictionaries

I Python er en ordbok en foranderlig, uordnet , der hver nøkkel må være unik. Tenk på det som en virkelig ordbok: du slår opp et ord (nøkkelen) og får definisjonen (verdien).

Følgende er noen av tilfellene der du kan bruke enumerate med Python-ordbøker:

A. Å gå gjennom nøkler og verdier i en ordbok

Du kan bruke funksjonen enumerate() til å gå gjennom tastene og verdiene til en ordbok.

Enumerate()-funksjonen legger til en teller til et gjentakbart objekt (som ordbøker), og gir deg tilgang til gjeldende indeksverdi.

En ordbok er gitt nedenfor:

example_dict = {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
for i, k in enumerate(example_dict):
    print(i, k)

I denne Python-koden lager vi først en ordbok kalt example_dict. Deretter bruker vi funksjonen enumerate() for å iterere over ordboken.

For hver iterasjon skriver vi ut løkketellingen (som er gitt av i og starter fra 0) og gjeldende nøkkel (som er k) fra ordboken.

Python Enumerate: En forklaring med eksempler

B. Kombinere Python Enumerate med funksjonen Items

Du kan også få tilgang til både nøkler og verdier til en ordbok gjennom funksjonen items() sammen med enumerate() . Elementer () -funksjonen returnerer en gjentakelig samling av nøkkelverdi-par som tupler.

Eksemplet nedenfor viser hvordan du kan bruke funksjonen items() med enumerate() :

example_dict = {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
for i, (k, v) in enumerate(example_dict.items()):
    print(i, k, v)

I denne koden lager vi en ordbok som heter , så bruker vi funksjonen enumerate() til å iterere over ordbokens nøkkelverdi-par. Under hver iterasjon skriver vi ut loopindeksen 'i', gjeldende nøkkel 'k' og dens tilsvarende verdi 'v'.

Python Enumerate: En forklaring med eksempler

Du har nå en solid forståelse av hvordan du bruker Pythons enumerate()-funksjon i noen vanlige scenarier. Men enumerate() har enda mer å tilby.

La oss dykke inn i noen avanserte brukstilfeller rundt enumerate() i neste seksjon!

3 avanserte brukstilfeller av Python Enumerate

I denne delen vil vi gå utover det grunnleggende og utforske noen av de avanserte brukstilfellene av enumerate-funksjonen i Python.

Vi vil dekke følgende brukstilfeller:

  1. Bruke Enumerate med Python-klasser

  2. Bruke Enumerate med Enum Classes

  3. Bruke Enumerate for reversering av ordre

La oss komme inn i det!

1. Bruke Enumerate med Python-klasser

I din Python-programmeringsreise kan du komme over situasjoner der du vil bruke enumerate med tilpassede klasser.

For å oppnå dette, bør klassen din implementere iter() -metoden, som gjør at den kan itereres.

Tenk på en klasse Farge som lagrer fargenavn og tilhørende heksadesimale verdier:

class Color:
    def __init__(self, colors: dict):
        self.colors = colors

    def __iter__(self):
        return iter(self.colors.items())

colors = Color({"red": "#FF0000", "green": "#00FF00", "blue": "#0000FF"})

for index, (name, hex_value) in enumerate(colors):
    print(f"{index}: {name} => {hex_value}")

I denne koden lager vi en Color-klasse som tar en ordbok med fargenavn og deres tilsvarende heksadesimale verdier.

Når du bruker enumerate() i løkken, gir den indeksen sammen med hvert nøkkelverdi-par. Dette lar deg skrive ut indeksen, fargenavnet og dens heksadesimale verdi i en formatert streng.

Python Enumerate: En forklaring med eksempler

2. Bruke Python Enumerate med Enum Classes

Python kommer med en innebygd Enum- klasse, som lar deg lage opptellingstyper med automatisk tildelte heltallsverdier.

Ta for eksempel en titt på følgende kode:

from enum import Enum, auto

class Direction(Enum):
    NORTH = auto()
    EAST = auto()
    SOUTH = auto()
    WEST = auto()

for index, direction in enumerate(Direction):
    print(f"{index}: {direction.name} => {direction.value}")

I dette skriptet definerer vi en oppregningsretning med fire medlemmer (NORD, ØST, SØR og VEST) ved å bruke Pythons enum-modul. Auto()-funksjonen tildeler en automatisk verdi til hvert medlem.

Når du bruker enumerate() i løkken, gir den en indeks sammen med hvert oppregningsmedlem. Dette lar deg skrive ut indeksen, medlemmets navn og dens automatisk tildelte verdi i en formatert streng.

Utdataene til denne koden er gitt i bildet nedenfor:

Python Enumerate: En forklaring med eksempler

3. Bruke Python Enumerate for reversering av rekkefølge

I noen tilfeller kan det være lurt å telle opp elementer i omvendt rekkefølge. Du kan oppnå dette ved å bruke den innebygde reversed() funksjonen i kombinasjon med enumerate() .

Følgende eksempel viser oppregning av elementer i omvendt rekkefølge:

my_list = ["apple", "banana", "cherry"]

for index, item in enumerate(reversed(my_list)):
    print(f"{index}: {item}")

I denne koden itererer vi over en omvendt versjon av my_list ved å bruke enumerate(). Dette gir deg indeksen og elementet fra den reverserte listen i hver iterasjon. Den lar deg skrive ut indeksen og elementet i en formatert streng.

Python Enumerate: En forklaring med eksempler

Reversed () vil ikke endre den opprinnelige sekvensen; den oppretter en ny iterator som presenterer elementene i omvendt rekkefølge.

For å vite mer om funksjoner i Python, sjekk følgende video:

Siste tanker

Når du fortsetter på Python-reisen, er det et must å mestre enumerate()-funksjonen. Det er et verktøy som forbedrer kodelesbarhet og effektivitet.

Ved å bruke enumerate(), kan du sømløst få tilgang til både indeksen og verdien i løkkene dine, noe som reduserer behovet for motvariabler eller indeksering. Det forenkler koden din og gjør den mer pytonisk.

Enten du itererer gjennom lister, tupler, strenger eller ordbøker, vil enumerate() vise seg å være et verdifullt verktøy. Ved å forstå og øve med enumerate(), vil du ta et betydelig skritt i å forbedre dine Python-programmeringsferdigheter!


PowerApps-søkefelt: Slik legger du til og tilpasser

PowerApps-søkefelt: Slik legger du til og tilpasser

Lær hvordan du oppretter et PowerApps-søkefelt fra bunnen av og tilpasser det til å matche det overordnede temaet for appen din.

SELECTEDVALUE DAX-eksempel- Valg av høsteskive

SELECTEDVALUE DAX-eksempel- Valg av høsteskive

Høst eller fang en verdi inne i et mål for å gjenbruke i et annet mål for dynamiske beregninger ved å bruke SELECTEDVALUE DAX i LuckyTemplates.

Versjonshistorikk i SharePoint-lister

Versjonshistorikk i SharePoint-lister

Oppdag hvordan versjonshistorikk i SharePoint kan hjelpe deg med å se utviklingen av bestemte data, og hvor mange endringer den har gjennomgått.

Hex-fargekodevelger for Lucky Templates-rapporter

Hex-fargekodevelger for Lucky Templates-rapporter

Her er et verktøy for å lage rapporter og grafikk, en sekskantkodevelger for farger som du kan bruke for enkelt å få fargene til LuckyTemplates-rapportene dine.

Dynamisk datoskjærer i Lucky-maler ved hjelp av en periodetabell

Dynamisk datoskjærer i Lucky-maler ved hjelp av en periodetabell

Du kan enkelt vise en datoperiode som en slicer i rapporten ved hjelp av en periodetabell. Bruk en M-kode for å lage den dynamiske datoskjæreren i LuckyTemplates.

Proporsjons- og frekvenstabeller i Excel

Proporsjons- og frekvenstabeller i Excel

Skulle dykke ned i frekvenstabeller i Excel samt proporsjonstabeller. Se nærmere på hva de er og når du skal bruke dem.

Slik installerer du DAX Studio & Tabular Editor i LuckyTemplates

Slik installerer du DAX Studio & Tabular Editor i LuckyTemplates

Lær hvordan du laster ned og installerer DAX Studio og Tabular Editor 3 og hvordan du konfigurerer dem for bruk i LuckyTemplates og i Excel.

LuckyTemplates Shape Map Visualization for romlig analyse

LuckyTemplates Shape Map Visualization for romlig analyse

Denne bloggen inneholder Shape Map-visualiseringen for romlig analyse i LuckyTemplates. Jeg viser deg hvordan du kan bruke denne visualiseringen effektivt med dens funksjoner og elementer.

LuckyTemplates finansiell rapportering: Allokering av resultater til maler på hver enkelt rad

LuckyTemplates finansiell rapportering: Allokering av resultater til maler på hver enkelt rad

I denne opplæringen viser jeg frem en unik idé rundt finansiell rapportering, som tildeler resultater for å forhåndsbestemme tabellmaler inne i LuckyTemplates.

DAX-mål i LuckyTemplates ved hjelp av måleforgrening

DAX-mål i LuckyTemplates ved hjelp av måleforgrening

Opprett DAX-mål i LuckyTemplates ved å bruke eksisterende mål eller formler. Dette er det jeg kaller tiltaket forgreningsteknikk.