Python Enumerate: En förklaring med exempel

Att arbeta med listor och andra itererbara objekt är en vanlig uppgift i . Ibland kan du behöva gå igenom dessa iterables samtidigt som du håller reda på indexet eller antalet för det aktuella elementet. Det är där Pythons inbyggda enumerate()-funktion kommer till undsättning.

Funktionen enumerate() i Python ger dig ett bekvämt sätt att komma åt både indexet för ett objekt och själva objektet när du går över en lista eller något itererbart objekt.

Python Enumerate: En förklaring med exempel

Denna funktion gör din , läsbar och effektiv. Det låter dig gå igenom element och hämta både deras index och värde. Istället för att manuellt initiera och öka en räknare i slingan, kan du lita på att enumerate() gör jobbet åt dig.

I den här artikeln kommer du att lära dig om Pythons inbyggda funktion enumerate() funktion, dess betydelse i din Python- kod och dess användningsfall.

Låt oss gå in i det!

Innehållsförteckning

Vad är Python Enumerate Function?

Föreställ dig att du arbetar med en listdatastruktur och du vill göra något med varje objekt, men du måste också känna till objektets position i listan.

Utan Python enumerate() kan du välja att använda en räknarvariabel som du ökar i varje loopiteration. Men det här tillvägagångssättet kan vara benäget att göra fel och det är inte särskilt "pytoniskt".

Enumerate är en inbyggd funktion i Python som gör att du kan iterera över itererbara objekt samtidigt som du håller reda på indexet för det aktuella objektet.

Nu när du har förstått vad enumerate()-funktionen i Python är, låt oss gå vidare till syntaxen för Python enumerate()-funktionen i nästa avsnitt!

Vad är syntaxen för Python Enumerate Function?

Syntaxen för en funktion definierar hur du ska använda den funktionen i din kod, inklusive vilka argument den tar och vad den returnerar.

Python Enumerate: En förklaring med exempel

Funktionen enumerate () har följande syntax:

enumerate(, start=0)
  • : Detta är en obligatorisk parameter och kan vara vilken som helst itererbar Python, till exempel en lista eller tupel.

  • start : Denna andra parameter är en valfri parameter som anger startvärdet för räknaren. Som standard är den inställd på 0.

Enumerate ()- funktionens returvärde är ett enumerate-objekt, vilket är en iterator som har par av (index, element) för varje objekt i den givna iterable.

Du kan använda denna iterator i a för att komma åt både indexet och objektet samtidigt.

Följande exempel visar hur du kan använda enumerate() -funktionen med en lista:

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

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

I det här exemplet går enumerate() genom enumerate-objekten, dvs fruktlistan , och tilldelar ett index till varje objekt, med start från 0.

For - slingan packar sedan upp indexet och objektet från det uppräknade objektet. Detta gör att du kan utföra operationer baserat på både index och objektets värde.

Vi använder utskriftsfunktionen för att skriva ut indexet och objektet till skärmen. Utdata från koden ges i bilden nedan:

Python Enumerate: En förklaring med exempel

I utgången kan du se att startindexet är 0. Detta är standardvärdet för indexet som tilldelas automatiskt av Python-tolken.

Men du kan också ange ett annat startvärde för räknaren genom att ange den valfria startparametern som visas i koden nedan:

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

Utgången kommer att likna den ovan. Den enda skillnaden blir att indexet nu börjar på 1.

Python Enumerate: En förklaring med exempel

Så nu har du koll på syntaxen för enumerate()-funktionen i Python. Men som med alla verktyg är det viktigt att veta när och var man ska använda det.

Det är därför vi kommer att utforska några vanliga användningsfall för funktionen enumerate() i nästa avsnitt!

5 Användningsfall av Python Enumerate-funktionen

Enumerate-funktionen i Python används flitigt i scenarier där både index och värdet av ett itererbart objekt är av betydelse för programmeraren.

Vi har listat några av de vanliga användningsfallen för att räkna upp funktioner i Python nedan.

1. Hur man använder Enumerate med Python-listor

I Python är a en inbyggd datastruktur som låter dig lagra flera objekt i en enda variabel. Tänk på en lista som en behållare där du kan lägga i olika föremål, och de behåller sin ordning.

Funktionen enumerate() kan användas på listor på en mängd olika sätt, till exempel:

A. Åtkomst till listelement och deras index med Python Enumerate

Ett av de vanligaste användningsfallen för enumerate() är när du behöver komma åt både elementen i en lista och deras index. Enumerate låter dig göra detta på ett rent och effektivt sätt.

Följande är ett exempel på att komma åt element i en lista och deras index:

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

Utdata från denna kod ges i bilden nedan:

Python Enumerate: En förklaring med exempel

B. Ändra listelement med Python Enumerate

När du behöver ändra elementen i en lista baserat på deras index, är enumerate() ett utmärkt verktyg. Du kan komma åt indexet inom loopen och använda det för att ändra listan.

Följande är ett exempel på att modifiera listelement med enumerate-funktionen:

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

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

Denna Python-kod skapar en lista med siffror från 1 till 5. Sedan använder den en for-loop och enumerate()-funktionen för att iterera över listan.

För varje iteration multiplicerar den det aktuella numret (numret) med 2 och tilldelar det om till samma position i listan (nummer[i]).

Resultatet är att varje nummer i den ursprungliga listan fördubblas som visas i bilden nedan:

Python Enumerate: En förklaring med exempel

C. Jämföra element i två listor med Python Enumerate

Om du jämför element i två olika listor, kan enumerate() tillhandahålla det index du behöver för att komma åt element i båda listorna samtidigt.

Följande är ett exempel på hur man använder enumerate-funktionen för att jämföra element i två listor:

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 den här koden definierar vi först två listor, list1 och list2. Sedan itererar vi genom list1 med en for-loop med enumerate(), som ger indexet (i) och värdet för varje objekt.

Om det aktuella objektet i lista1 inte matchar motsvarande objekt i lista2, skrivs det ut indexet för skillnaden och de olika värdena från båda listorna.

Resultatet av denna kod visas nedan:

Python Enumerate: En förklaring med exempel

2. Hur man använder Enumerate med Python Tuples

En tupel i Python är en ordnad samling av element, liknande en lista. Den enda skillnaden är att en tupel är oföränderlig, vilket innebär att du inte kan ändra dess innehåll efter att den skapats.

Följande är några av de fall där du kan använda enumerate med Python-tupler.

A. Använda Python Enumerate() för att hitta ett element i en tuppel

När du har att göra med tupler i Python kan du ofta behöva ta reda på om det finns ett element i en tupel.

Följande exempelkod visar hur man använder enumerate för att hitta element i en tupel:

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

Denna kod kommer att skriva ut "'mango' hittad på position 2" eftersom 'mango' är på index 2 i tupeln.

Python Enumerate: En förklaring med exempel

B. Använda Python Enumerate() för att skapa en ordbok från en tuppel

Om du har en tupel och du behöver förvandla den till en ordbok, kan Pythons enumerate()-funktion vara ditt go-to-verktyg.

Exempelkoden visar hur du kan skapa en ordbok från en tupel med hjälp av enumerate:

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

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

Denna kod kommer att skriva ut en ordbok där nycklarna är indexen och värdena är elementen från tupeln.

Python Enumerate: En förklaring med exempel

3. Hur man använder Enumerate med Python Dictionaries

I Python är en ordbok en föränderlig, oordnad , där varje nyckel måste vara unik. Se det som en verklig ordbok: du slår upp ett ord (nyckeln) och får dess definition (värdet).

Följande är några av de fall där du kan använda enumerate med Python-ordböcker:

A. Gå igenom nycklar och värden i en ordbok

Du kan använda funktionen enumerate() för att gå igenom nycklar och värden i en ordbok.

Funktionen enumerate() lägger till en räknare till ett itererbart objekt (som ordböcker), vilket ger dig tillgång till det aktuella indexvärdet.

En ordbok ges nedan:

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

I denna Python-kod skapar vi först en ordbok som heter example_dict. Sedan använder vi funktionen enumerate() för att iterera över ordboken.

För varje iteration skriver vi ut loopräkningen (som ges av i och börjar från 0) och den aktuella nyckeln (som är k) från ordboken.

Python Enumerate: En förklaring med exempel

B. Kombinera Python Enumerate med funktionen Items

Du kan också komma åt både nycklar och värden i en ordbok genom funktionen items() tillsammans med enumerate() . Funktionen items () returnerar en iterabel samling nyckel-värdepar som tupler.

Exemplet nedan visar hur du kan använda 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 den här koden skapar vi en ordbok som heter , sedan använder vi funktionen enumerate() för att iterera över ordbokens nyckel-värdepar. Under varje iteration skriver vi ut loopindex 'i', den aktuella nyckeln 'k' och dess motsvarande värde 'v'.

Python Enumerate: En förklaring med exempel

Du har nu en gedigen förståelse för hur du använder Pythons enumerate()-funktion i några vanliga scenarier. Men enumerate() har ännu mer att erbjuda.

Låt oss dyka in i några avancerade användningsfall kring enumerate() i nästa avsnitt!

3 avancerade användningsfall av Python Enumerate

I det här avsnittet kommer vi att gå bortom grunderna och utforska några av de avancerade användningsfallen för enumerate-funktionen i Python.

Vi kommer att täcka följande användningsfall:

  1. Använda Enumerate med Python-klasser

  2. Använda Enumerate with Enum Classes

  3. Använder Enumerate för att vända ordning

Låt oss gå in i det!

1. Använda Enumerate med Python-klasser

I din Python-programmeringsresa kan du stöta på situationer där du vill använda enumerate med anpassade klasser.

För att uppnå detta bör din klass implementera iter() -metoden, vilket gör att den kan itereras.

Tänk på en klass Färg som lagrar färgnamn och deras associerade hex-värden:

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 den här koden skapar vi en Color-klass som tar en ordbok med färgnamn och deras motsvarande hexadecimala värden.

När du använder enumerate() i loopen tillhandahåller det indexet tillsammans med varje nyckel-värdepar. Detta låter dig skriva ut indexet, färgnamnet och dess hexadecimala värde i en formaterad sträng.

Python Enumerate: En förklaring med exempel

2. Använda Python Enumerate med Enum Classes

Python kommer med en inbyggd Enum- klass, som låter dig skapa uppräkningstyper med automatiskt tilldelade heltalsvärden.

Ta till exempel en titt på följande kod:

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 det här skriptet definierar vi en uppräkningsriktning med fyra medlemmar (NORD, ÖST, SYD och VÄST) med Pythons uppräkningsmodul. Auto()-funktionen tilldelar ett automatiskt värde till varje medlem.

När du använder enumerate() i slingan ger det ett index tillsammans med varje uppräkningsmedlem. Detta låter dig skriva ut indexet, medlemmens namn och dess automatiskt tilldelade värde i en formaterad sträng.

Utdata från denna kod ges i bilden nedan:

Python Enumerate: En förklaring med exempel

3. Använda Python Enumerate för att vända ordning

I vissa fall kanske du vill räkna upp objekt i omvänd ordning. Du kan uppnå detta genom att använda den inbyggda reversed() -funktionen i kombination med enumerate() .

Följande exempel visar uppräkning av objekt i omvänd ordning:

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

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

I den här koden itererar vi över en omvänd version av my_list med hjälp av enumerate(). Detta ger dig indexet och objektet från den omvända listan i varje iteration. Det låter dig skriva ut indexet och objektet i en formaterad sträng.

Python Enumerate: En förklaring med exempel

Reversed () kommer inte att ändra den ursprungliga sekvensen; den skapar en ny iterator som presenterar objekten i omvänd ordning.

För att veta mer om funktioner i Python, kolla in följande video:

Slutgiltiga tankar

När du fortsätter på din Python-resa är det ett måste att behärska enumerate()-funktionen. Det är ett verktyg som förbättrar kodläsbarhet och effektivitet.

Genom att använda enumerate() kan du sömlöst komma åt både indexet och värdet i dina loopar, vilket minskar behovet av motvariabler eller indexering. Det förenklar din kod och gör den mer pytonisk.

Oavsett om du itererar genom listor, tupler, strängar eller ordböcker, kommer enumerate() att visa sig vara ett värdefullt verktyg. Genom att förstå och öva med enumerate(), kommer du att ta ett betydande steg i att finslipa dina Python-programmeringskunskaper!


Upptäck unika insikter med LuckyTemplates TOPN-funktion

Upptäck unika insikter med LuckyTemplates TOPN-funktion

Den här bloggen innehåller LuckyTemplates TOPN DAX-funktion, som gör att du kan få unika insikter från dina data, vilket hjälper dig att fatta bättre marknadsföringsbeslut.

Datamodellering i LuckyTemplates med hjälp av stödtabeller

Datamodellering i LuckyTemplates med hjälp av stödtabeller

Lär dig några fantastiska analytiska tekniker som vi kan göra för datamodellering i LuckyTemplates med hjälp av DAX-stödtabeller.

Avancerad DAX för LuckyTemplates: Implementering av rankningslogik över unika insikter

Avancerad DAX för LuckyTemplates: Implementering av rankningslogik över unika insikter

Här dyker vi in ​​i LuckyTemplates Advanced DAX och implementerar rankningslogik för att få en mycket unik insikt. Jag visar också upp måttförgrening i det här exemplet.

LuckyTemplates What-If-parameterfunktion

LuckyTemplates What-If-parameterfunktion

Den här bloggen introducerar den nya funktionen i LuckyTemplates, analysparametern What-If. Du kommer att se hur det gör allt snabbt och enkelt för din scenarioanalys.

Använd LuckyTemplates Mät förgreningar för att kontrollera om dina marginaler ökar när intäkterna växer

Använd LuckyTemplates Mät förgreningar för att kontrollera om dina marginaler ökar när intäkterna växer

Lär dig hur du avgör om din intäktstillväxt är bra genom att kontrollera om dina marginaler ökade med hjälp av LuckyTemplates mäter förgrening.

LuckyTemplates parametrar via frågeredigerare

LuckyTemplates parametrar via frågeredigerare

Lär dig och förstå hur du kan skapa och använda LuckyTemplates-parametrar som är en kraftfull funktion i frågeredigeraren.

Runda stapeldiagram – En visualisering för din instrumentpanel

Runda stapeldiagram – En visualisering för din instrumentpanel

Denna handledning kommer att diskutera hur man skapar ett runt stapeldiagram med Charticulator. Du kommer att lära dig hur du designar dem för din LuckyTemplates-rapport.

PowerApps funktioner och formler | En introduktion

PowerApps funktioner och formler | En introduktion

Lär dig hur du använder PowerApps funktioner och formler för att förbättra funktionaliteten och ändra ett beteende i vår Power Apps canvas-app.

Pipe In R: Anslutningsfunktioner med Dplyr

Pipe In R: Anslutningsfunktioner med Dplyr

I den här handledningen kommer du att lära dig hur du kopplar ihop funktioner med hjälp av dplyr-röroperatorn i programmeringsspråket R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX från LuckyTemplates låter dig returnera rankningen av ett specifikt nummer i varje tabellrad som utgör en del av en lista med nummer.