Python Enumerate: En forklaring med eksempler

At arbejde med lister og andre gentagelige objekter er en almindelig opgave i . Til tider skal du muligvis gå gennem disse iterables, mens du også holder styr på indekset eller antallet af det aktuelle element. Det er her Pythons indbyggede enumerate() funktion kommer til undsætning.

Enumerate()-funktionen i Python giver dig en bekvem måde at få adgang til både indekset for et element og selve elementet, når du går over en liste eller et hvilket som helst iterbart objekt.

Python Enumerate: En forklaring med eksempler

Denne funktion gør din , læsbar og effektiv. Det giver dig mulighed for at gå gennem elementer og hente både deres indeks og værdi. I stedet for manuelt at initialisere og øge en tæller i løkken, kan du stole på enumerate() til at udføre jobbet for dig.

I denne artikel lærer du om Pythons indbyggede funktion enumerate()-funktion, dens betydning i din Python- kode og dens anvendelsestilfælde.

Lad os komme ind i det!

Indholdsfortegnelse

Hvad er Python Enumerate Function?

Forestil dig, at du arbejder med en listedatastruktur, og du vil gøre noget med hvert element, men du skal også kende elementets position på listen.

Uden Python enumerate(), kan du beslutte at bruge en tællervariabel, som du øger i hver loop-iteration. Men denne tilgang kan være tilbøjelig til fejl, og den er ikke særlig "pytonisk".

Enumerate er en indbygget funktion i Python, der sætter dig i stand til at iterere over iterable objekter, mens du holder styr på indekset for det aktuelle element.

Nu hvor du har forstået, hvad enumerate()-funktionen i Python er, lad os gå videre til syntaksen for Python-enumerate()-funktionen i næste afsnit!

Hvad er syntaksen for Python Enumerate Function?

Syntaksen for en funktion definerer, hvordan du skal bruge den funktion i din kode, herunder hvilke argumenter den tager, og hvad den returnerer.

Python Enumerate: En forklaring med eksempler

Funktionen enumerate () tager følgende syntaks:

enumerate(, start=0)
  • : Dette er en påkrævet parameter og kan være enhver Python iterable, såsom en liste eller tuple.

  • start : Denne anden parameter er en valgfri parameter, der specificerer startværdien for tælleren. Som standard er den sat til 0.

Enumerate () -funktionens returværdi er et enumerate-objekt, som er en iterator med par af (indeks, element) for hvert element i den givne iterable.

Du kan bruge denne iterator i a for at få adgang til både indekset og elementet samtidigt.

Følgende eksempel viser, hvordan du kan bruge enumerate() -funktionen med en liste:

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

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

I dette eksempel går enumerate() gennem enumerate-objekterne, dvs. frugtlisten , og tildeler et indeks til hvert element, startende fra 0.

For - løkken pakker derefter indekset og elementet ud fra det opregnede objekt. Dette giver dig mulighed for at udføre operationer baseret på både indekset og varens værdi.

Vi bruger printfunktionen til at udskrive indekset og varen til skærmen. Udgangen af ​​koden er angivet på billedet nedenfor:

Python Enumerate: En forklaring med eksempler

I outputtet kan du se, at startindekset er 0. Dette er standardværdien for indekset, der automatisk tildeles af Python-fortolkeren.

Du kan dog også angive en anden startværdi for tælleren ved at angive den valgfrie startparameter som vist i koden nedenfor:

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

Outputtet vil ligne ovenstående. Den eneste forskel vil være, at indekset nu starter ved 1.

Python Enumerate: En forklaring med eksempler

Så nu har du styr på syntaksen for enumerate()-funktionen i Python. Men som med ethvert værktøj er det vigtigt at vide, hvornår og hvor det skal bruges.

Det er grunden til, at vi vil udforske nogle almindelige use cases for funktionen enumerate() i næste afsnit!

5 Brugstilfælde af Python Enumerate-funktionen

Enumerate-funktionen i Python bruges i vid udstrækning i scenarier, hvor både indekset og værdien af ​​et iterabelt objekt er af betydning for programmøren.

Vi har listet nogle af de almindelige brugstilfælde for opregning af funktioner i Python nedenfor.

1. Sådan bruges Enumerate med Python-lister

I Python er a en indbygget datastruktur, der giver dig mulighed for at gemme flere elementer i en enkelt variabel. Tænk på en liste som en beholder, hvor du kan lægge forskellige varer i, og de bevarer deres rækkefølge.

Funktionen enumerate() kan bruges på lister på en række forskellige måder, såsom:

A. Adgang til listeelementer og deres indekser med Python Enumerate

En af de mest almindelige anvendelsesmuligheder for enumerate() er, når du skal have adgang til både elementerne i en liste og deres indekser. Enumerate giver dig mulighed for at gøre dette på en ren og effektiv måde.

Følgende er et eksempel på adgang 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}.")

Outputtet af denne kode er givet på billedet nedenfor:

Python Enumerate: En forklaring med eksempler

B. Ændring af listeelementer med Python Enumerate

Når du skal ændre elementerne i en liste baseret på deres indeks, er enumerate() et glimrende værktøj. Du kan få adgang til indekset i løkken og bruge det til at ændre listen.

Følgende er et eksempel på ændring af listeelementer med enumerate-funktionen:

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

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

Denne Python-kode opretter en liste med tal fra 1 til 5. Derefter bruger den en for-løkke og enumerate()-funktionen til at iterere over listen.

For hver iteration ganges det aktuelle tal (antal) med 2 og tildeles det igen til den samme position på listen (tal[i]).

Resultatet er, at hvert tal i den originale liste fordobles som vist på billedet nedenfor:

Python Enumerate: En forklaring med eksempler

C. Sammenligning af elementer i to lister med Python Enumerate

Hvis du sammenligner elementer i to forskellige lister, kan enumerate() give det indeks, du skal bruge for at få adgang til elementer i begge lister på samme tid.

Følgende er et eksempel på brug af enumerate-funktion til at 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 kode definerer vi først to lister, liste1 og liste2. Derefter itererer vi gennem liste1 ved hjælp af en for-løkke med enumerate(), som giver indekset (i) og værdien af ​​hvert element.

Hvis det aktuelle element i liste1 ikke matcher det tilsvarende element i liste2, udskriver det indekset for forskellen og de forskellige værdier fra begge lister.

Resultatet af denne kode er vist nedenfor:

Python Enumerate: En forklaring med eksempler

2. Sådan bruges Enumerate med Python Tuples

En tuple i Python er en ordnet samling af elementer, der ligner en liste. Den eneste forskel er, at en tuple er uforanderlig, hvilket betyder, at du ikke kan ændre dens indhold efter oprettelsen.

Følgende er nogle af de tilfælde, hvor du kan bruge enumerate med Python-tupler.

A. Brug af Python Enumerate() til at finde et element i en tuple

Når du beskæftiger dig med tuples i Python, skal du måske ofte finde ud af, om der findes et element i en tuple.

Følgende eksempelkode demonstrerer brugen af ​​enumerate til at finde elementer i en tuple:

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

Denne kode vil udskrive "'mango' fundet ved position 2", fordi 'mango' er ved indeks 2 i tuplet.

Python Enumerate: En forklaring med eksempler

B. Brug af Python Enumerate() til at oprette en ordbog fra en tuple

Hvis du har en tuple, og du har brug for at omdanne den til en ordbog, kan Pythons enumerate()-funktion være dit go-to-værktøj.

Eksempelkoden viser, hvordan du kan oprette en ordbog fra en tupel ved hjælp af enumerate:

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

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

Denne kode vil udskrive en ordbog, hvor nøglerne er indekserne, og værdierne er elementerne fra tuplen.

Python Enumerate: En forklaring med eksempler

3. Sådan bruges Enumerate med Python Dictionaries

I Python er en ordbog en foranderlig, uordnet , hvor hver nøgle skal være unik. Tænk på det som en ordbog fra det virkelige liv: du slår et ord op (nøglen) og får dets definition (værdien).

Følgende er nogle af de tilfælde, hvor du kan bruge enumerate med Python-ordbøger:

A. Gennemgang af nøgler og værdier i en ordbog

Du kan bruge funktionen enumerate() til at gå gennem nøglerne og værdierne i en ordbog.

Funktionen enumerate() tilføjer en tæller til et gentageligt objekt (som ordbøger), hvilket giver dig adgang til den aktuelle indeksværdi.

En ordbog er givet nedenfor:

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

I denne Python-kode opretter vi først en ordbog kaldet example_dict. Derefter bruger vi enumerate()-funktionen til at iterere over ordbogen.

For hver iteration udskriver vi sløjfetællingen (som er givet ved i og starter fra 0) og den aktuelle nøgle (som er k) fra ordbogen.

Python Enumerate: En forklaring med eksempler

B. Kombination af Python Enumerate med funktionen Items

Du kan også få adgang til både nøgler og værdier i en ordbog gennem funktionen items() sammen med enumerate() . Funktionen items() returnerer en gentagen samling af nøgleværdi-par som tupler.

Eksemplet nedenfor viser, hvordan du kan bruge funktionen 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 kode opretter vi en ordbog ved navn , derefter bruger vi funktionen enumerate() til at iterere over ordbogens nøgleværdi-par. Under hver iteration udskriver vi sløjfeindekset 'i', den aktuelle nøgle 'k' og dens tilsvarende værdi 'v'.

Python Enumerate: En forklaring med eksempler

Du har nu en solid forståelse af, hvordan du bruger Pythons enumerate()-funktion i nogle almindelige scenarier. Men enumerate() har endnu mere at byde på.

Lad os dykke ned i nogle avancerede use cases omkring enumerate() i næste afsnit!

3 tilfælde af avanceret brug af Python Enumerate

I dette afsnit vil vi gå ud over det grundlæggende og udforske nogle af de avancerede anvendelsestilfælde af enumerate-funktionen i Python.

Vi vil dække følgende brugssager:

  1. Brug af Enumerate med Python-klasser

  2. Brug af Enumerate med Enum Classes

  3. Brug af Enumerate til at vende rækkefølge

Lad os komme ind i det!

1. Brug af Enumerate med Python-klasser

I din Python-programmeringsrejse kan du støde på situationer, hvor du vil bruge enumerate med brugerdefinerede klasser.

For at opnå dette skal din klasse implementere iter()- metoden, som gør det muligt at iterere den.

Overvej en klasse Farve , der gemmer farvenavne og deres tilknyttede hex-værdier:

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 kode opretter vi en farveklasse, der tager en ordbog med farvenavne og deres tilsvarende hexadecimale værdier.

Når du bruger enumerate() i løkken, giver det indekset sammen med hvert nøgleværdi-par. Dette giver dig mulighed for at udskrive indekset, farvenavnet og dets hexadecimale værdi i en formateret streng.

Python Enumerate: En forklaring med eksempler

2. Brug af Python Enumerate med Enum-klasser

Python kommer med en indbygget Enum- klasse, som giver dig mulighed for at oprette optællingstyper med automatisk tildelte heltalsværdier.

Tag for eksempel et kig 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 script definerer vi en opregningsretning med fire medlemmer (NORD, ØST, SYD og VEST) ved hjælp af Pythons enum-modul. Auto()-funktionen tildeler en automatisk værdi til hvert medlem.

Når du bruger enumerate() i løkken, giver det et indeks sammen med hvert opregningsmedlem. Dette lader dig udskrive indekset, medlemmets navn og dets automatisk tildelte værdi i en formateret streng.

Outputtet af denne kode er givet på billedet nedenfor:

Python Enumerate: En forklaring med eksempler

3. Brug af Python Enumerate til at vende rækkefølge

I nogle tilfælde vil du måske opregne elementer i omvendt rækkefølge. Du kan opnå dette ved at bruge den indbyggede reversed() funktion i kombination med enumerate() .

Følgende eksempel viser opregning af elementer i omvendt rækkefølge:

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

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

I denne kode gentager vi en omvendt version af my_list ved hjælp af enumerate(). Dette giver dig indekset og punktet fra den omvendte liste i hver iteration. Det giver dig mulighed for at udskrive indekset og elementet i en formateret streng.

Python Enumerate: En forklaring med eksempler

Reversed () vil ikke ændre den oprindelige sekvens; den opretter en ny iterator, der præsenterer emnerne i omvendt rækkefølge.

For at vide mere om funktioner i Python, tjek følgende video ud:

Afsluttende tanker

Når du fortsætter på din Python-rejse, er det et must at mestre enumerate()-funktionen. Det er et værktøj, der forbedrer kodelæsbarhed og effektivitet.

Ved at bruge enumerate() kan du problemfrit få adgang til både indekset og værdien i dine loops, hvilket reducerer behovet for modvariabler eller indeksering. Det forenkler din kode og gør den mere pytonisk.

Uanset om du itererer gennem lister, tupler, strenge eller ordbøger, vil enumerate() vise sig at være et værdifuldt værktøj. Ved at forstå og øve dig med enumerate(), vil du tage et væsentligt skridt i at forbedre dine Python-programmeringsevner!


Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Denne blog indeholder LuckyTemplates TOPN DAX-funktionen, som giver dig mulighed for at få unik indsigt fra dine data, hvilket hjælper dig med at træffe bedre markedsføringsbeslutninger.

Datamodellering i LuckyTemplates ved hjælp af understøttende tabeller

Datamodellering i LuckyTemplates ved hjælp af understøttende tabeller

Lær nogle fantastiske analytiske teknikker, som vi kan gøre til datamodellering i LuckyTemplates ved hjælp af DAX-understøttende tabeller.

Avanceret DAX til LuckyTemplates: Implementering af rangeringslogik på tværs af unikke indsigter

Avanceret DAX til LuckyTemplates: Implementering af rangeringslogik på tværs af unikke indsigter

Her dykker vi ned i LuckyTemplates Advanced DAX og implementerer rangeringslogik for at få en meget unik indsigt. Jeg viser også måleforgrening i dette eksempel.

LuckyTemplates What-If-parameterfunktion

LuckyTemplates What-If-parameterfunktion

Denne blog introducerer den nye funktion i LuckyTemplates, What-If-analyseparameteren. Du vil se, hvordan det gør alt hurtigt og nemt til din scenarieanalyse.

Brug LuckyTemplates Mål forgrening for at kontrollere, om dine avancer udvides, efterhånden som omsætningen vokser

Brug LuckyTemplates Mål forgrening for at kontrollere, om dine avancer udvides, efterhånden som omsætningen vokser

Lær, hvordan du afgør, om din omsætningsvækst er god ved at kontrollere, om dine avancer er udvidet ved hjælp af LuckyTemplates, der måler forgrening.

LuckyTemplates-parametre via forespørgselseditor

LuckyTemplates-parametre via forespørgselseditor

Lær og forstå, hvordan du kan oprette og bruge LuckyTemplates Parameters, som er en kraftfuld funktion i Query Editor.

Rundt søjlediagram – en visualisering til dit dashboard

Rundt søjlediagram – en visualisering til dit dashboard

Denne vejledning vil diskutere om oprettelse af et rundt søjlediagram ved hjælp af Charticulator. Du lærer, hvordan du designer dem til din LuckyTemplates-rapport.

PowerApps funktioner og formler | En introduktion

PowerApps funktioner og formler | En introduktion

Lær, hvordan du bruger PowerApps-funktioner og -formler til at forbedre funktionaliteten og ændre adfærd i vores Power Apps-lærredsapp.

Pipe In R: Tilslutningsfunktioner med Dplyr

Pipe In R: Tilslutningsfunktioner med Dplyr

I denne øvelse lærer du, hvordan du kæder funktioner sammen ved hjælp af dplyr-røroperatoren i programmeringssproget R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX fra LuckyTemplates giver dig mulighed for at returnere rangeringen af ​​et specifikt tal i hver tabelrække, der udgør en del af en liste over tal.