Wat is zelf in Python: voorbeelden uit de echte wereld
Wat is zelf in Python: voorbeelden uit de echte wereld
Werken met lijsten en andere itereerbare objecten is een veelvoorkomende taak bij het programmeren in Python . Soms moet u deze herhalingen doorlopen terwijl u ook de index of het aantal van het huidige element bijhoudt. Dat is waar de ingebouwde enumerate()-functie van Python te hulp komt.
De functie enumerate() in Python biedt u een handige manier om toegang te krijgen tot zowel de index van een item als het item zelf wanneer u een lijst of een ander itereerbaar object doorloopt.
Deze functie maakt uw code meer Pythonic , leesbaarder en efficiënter. Hiermee kunt u elementen doorlopen en zowel hun index als waarde ophalen. In plaats van handmatig een teller binnen de lus te initialiseren en te verhogen, kunt u vertrouwen op enumerate() om het werk voor u te doen.
In dit artikel leer je over de ingebouwde functie enumerate() van Python, het belang ervan in je Python- code en de use cases.
Laten we erop ingaan!
Inhoudsopgave
Wat is Python Enumerate-functie?
Stel je voor dat je werkt met een lijstgegevensstructuur en je wilt iets doen met elk item, maar je moet ook weten wat de positie van het item in de lijst is.
Zonder Python enumerate(), zou je kunnen besluiten om een tellervariabele te gebruiken die je verhoogt in elke herhaling van de lus. Maar deze benadering kan foutgevoelig zijn en is niet erg "Pythonisch".
Enumerate is een ingebouwde functie in Python waarmee u itereerbare objecten kunt herhalen terwijl u de index van het huidige item bijhoudt.
Nu je hebt begrepen wat de functie enumerate() in Python is, gaan we verder met de syntaxis van de Python-functie enumerate() in de volgende sectie!
Wat is de syntaxis van de Python Enumerate-functie?
De syntaxis van een functie definieert hoe u die functie in uw code moet gebruiken, inclusief welke argumenten er nodig zijn en wat deze retourneert.
De functie enumerate() heeft de volgende syntaxis:
enumerate(, start=0)
: Dit is een vereiste parameter en kan elke Python iterable zijn, zoals een lijst of tuple.
start : Deze tweede parameter is een optionele parameter die de startwaarde van de teller specificeert. Standaard staat deze op 0.
De retourwaarde van de functie enumerate() is een object enumerate, een iterator met paren van (index, element) voor elk item in de gegeven iterable.
U kunt deze iterator in een for-lus gebruiken om tegelijkertijd toegang te krijgen tot zowel de index als het item.
Het volgende voorbeeld laat zien hoe u de functie enumerate() kunt gebruiken met een lijst:
fruits = ['apple', 'banana', 'cherry']
for index, item in enumerate(fruits):
print(index, item)
In dit voorbeeld doorloopt enumerate() de enumerate-objecten, dwz de fruitlijst , en wijst een index toe aan elk item, beginnend bij 0.
De for- lus pakt vervolgens de index en het item uit het opgesomde object uit. Hierdoor kunt u bewerkingen uitvoeren op basis van zowel de index als de waarde van het item.
We gebruiken de afdrukfunctie om de index en het item op het scherm af te drukken. De uitvoer van de code wordt weergegeven in de onderstaande afbeelding:
In de uitvoer kunt u zien dat de startindex 0 is. Dit is de standaardwaarde van de index die automatisch wordt toegewezen door de Python-interpreter.
U kunt echter ook een andere startwaarde voor de teller opgeven door de optionele startparameter op te geven, zoals weergegeven in de onderstaande code:
for index, item in enumerate(fruits, start=1):
print(index, item)
De uitvoer zal vergelijkbaar zijn met die hierboven. Het enige verschil zal zijn dat de index nu begint bij 1.
Dus nu heb je grip op de syntaxis van de functie enumerate() in Python. Maar zoals bij elk hulpmiddel is het belangrijk om te weten wanneer en waar u het moet gebruiken.
Daarom gaan we in de volgende sectie enkele veelvoorkomende use-cases voor de functie enumerate() onderzoeken!
5 Use Cases van de Python Enumerate-functie
De opsommingsfunctie in Python wordt veel gebruikt in scenario's waarin zowel de index als de waarde van een itereerbaar object van belang zijn voor de programmeur.
We hebben hieronder enkele veelvoorkomende use-cases voor inventarisatiefuncties in Python opgesomd.
1. Enumerate gebruiken met Python-lijsten
In Python is een lijst een ingebouwde gegevensstructuur waarmee u meerdere items in één variabele kunt opslaan. Beschouw een lijst als een container waarin u verschillende items kunt plaatsen en ze behouden hun volgorde.
De functie enumerate() kan op verschillende manieren in lijsten worden gebruikt, zoals:
A. Toegang krijgen tot lijstelementen en hun indexen met Python Enumerate
Een van de meest voorkomende use-cases voor enumerate() is wanneer u toegang moet hebben tot zowel de elementen van een lijst als hun indexen. Met Enumerate kunt u dit op een schone en efficiënte manier doen.
Het volgende is een voorbeeld van toegang tot elementen van een lijst en hun indexen:
fruits = ['apple', 'banana', 'mango', 'grape', 'orange']
for index, fruit in enumerate(fruits):
print(f"At index {index}, the fruit is {fruit}.")
De uitvoer van deze code wordt gegeven in de onderstaande afbeelding:
B. Lijstelementen wijzigen met Python Enumerate
Wanneer u de elementen van een lijst moet wijzigen op basis van hun index, is enumerate() een uitstekend hulpmiddel. U hebt toegang tot de index binnen de lus en kunt deze gebruiken om de lijst te wijzigen.
Het volgende is een voorbeeld van het wijzigen van lijstelementen met de opsommingsfunctie:
numbers = [1, 2, 3, 4, 5]
for i, num in enumerate(numbers):
numbers[i] = num * 2
Deze Python-code maakt een lijst met getallen van 1 tot 5. Vervolgens gebruikt het een for-lus en de functie enumerate() om de lijst te herhalen.
Voor elke iteratie vermenigvuldigt het het huidige getal (num) met 2 en wijst het opnieuw toe aan dezelfde positie in de lijst (numbers[i]).
Het resultaat is dat elk nummer in de originele lijst wordt verdubbeld, zoals weergegeven in de onderstaande afbeelding:
C. Elementen in twee lijsten vergelijken met Python Enumerate
Als je elementen in twee verschillende lijsten vergelijkt, kan enumerate() de index leveren die je nodig hebt om tegelijkertijd toegang te krijgen tot elementen in beide lijsten.
Het volgende is een voorbeeld van het gebruik van de opsommingsfunctie om elementen in twee lijsten te vergelijken:
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)")
In deze code definiëren we eerst twee lijsten, lijst1 en lijst2. Vervolgens doorlopen we lijst1 met behulp van een for-lus met enumerate(), die de index (i) en de waarde van elk item levert.
Als het huidige item in lijst1 niet overeenkomt met het overeenkomstige item in lijst2, wordt de index van het verschil en de verschillende waarden van beide lijsten afgedrukt.
Het resultaat van deze code wordt hieronder weergegeven:
2. Hoe Enumerate te gebruiken met Python Tuples
Een tuple in Python is een geordende verzameling elementen, vergelijkbaar met een lijst. Het enige verschil is dat een tuple onveranderlijk is, wat betekent dat je de inhoud ervan niet meer kunt wijzigen nadat het is gemaakt.
Hieronder volgen enkele gevallen waarin u opsomming kunt gebruiken met Python-tuples.
A. Python Enumerate() gebruiken om een element in een tuple te vinden
Wanneer u in Python met tuples te maken heeft, moet u mogelijk vaak uitzoeken of een element in een tuple bestaat.
De volgende voorbeeldcode demonstreert het gebruik van enumerate om elementen in een tuple te vinden:
fruits = ('apple', 'banana', 'mango', 'grape', 'orange')
for i, fruit in enumerate(fruits):
if fruit == 'mango':
print(f"'mango' found at position {i}")
Deze code zal "'mango' gevonden op positie 2" afdrukken omdat 'mango' op index 2 in de tuple staat.
B. Python Enumerate() gebruiken om een woordenboek te maken van een tuple
Als je een tuple hebt en je moet het omzetten in een woordenboek, kan de functie enumerate() van Python je go-to-tool zijn.
De voorbeeldcode laat zien hoe u een woordenboek kunt maken van een tuple met behulp van enumerate:
fruits = ('apple', 'banana', 'mango', 'grape', 'orange')
fruit_dict = {i: fruit for i, fruit in enumerate(fruits)}
print(fruit_dict)
Deze code drukt een woordenboek af waarin de sleutels de indexen zijn en de waarden de elementen uit de tuple.
3. Enumerate gebruiken met Python-woordenboeken
In Python is een woordenboek een veranderlijke, ongeordende verzameling sleutel-waardeparen , waarbij elke sleutel uniek moet zijn. Zie het als een echt woordenboek: je zoekt een woord op (de sleutel) en krijgt de definitie (de waarde).
Hieronder volgen enkele gevallen waarin u opsomming kunt gebruiken met Python-woordenboeken:
A. Sleutels en waarden van een woordenboek doorlopen
U kunt de functie enumerate() gebruiken om de sleutels en waarden van een woordenboek te doorlopen.
De functie enumerate() voegt een teller toe aan een itereerbaar object (zoals woordenboeken), waardoor u toegang krijgt tot de huidige indexwaarde.
Een voorbeeld van een opsommingsfunctie met Python- woordenboek wordt hieronder gegeven:
example_dict = {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
for i, k in enumerate(example_dict):
print(i, k)
In deze Python-code maken we eerst een woordenboek met de naam example_dict. Vervolgens gebruiken we de functie enumerate() om het woordenboek te herhalen.
Voor elke iteratie printen we de lustelling (die wordt gegeven door i en begint bij 0) en de huidige sleutel (die k is) uit het woordenboek.
B. Python Enumerate combineren met Items-functie
U kunt ook toegang krijgen tot zowel de sleutels als de waarden van een woordenboek via de functie items() samen met enumerate() . De functie items() retourneert een herhaalde verzameling sleutel-waardeparen als tupels.
Het onderstaande voorbeeld laat zien hoe u de functie items() kunt gebruiken met opsomming() :
example_dict = {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
for i, (k, v) in enumerate(example_dict.items()):
print(i, k, v)
In deze code maken we een woordenboek met de naam example_dict , en vervolgens gebruiken we de functie enumerate() om de sleutel-waardeparen van het woordenboek te herhalen. Tijdens elke iteratie printen we de lusindex 'i', de huidige sleutel 'k' en de bijbehorende waarde 'v'.
U hebt nu een goed begrip van het gebruik van de Python-functie enumerate() in enkele veelvoorkomende scenario's. Maar enumerate() heeft nog meer te bieden.
Laten we in de volgende sectie ingaan op enkele geavanceerde use-cases rond enumerate()!
3 geavanceerde use-cases van Python Enumerate
In deze sectie gaan we verder dan de basis en verkennen we enkele geavanceerde use-cases van de opsommingsfunctie in Python.
We behandelen de volgende use cases:
Enumerate gebruiken met Python-klassen
Enumerate gebruiken met Enum Classes
Enumerate gebruiken voor het omkeren van bestellingen
Laten we erop ingaan!
1. Enumerate gebruiken met Python-klassen
Tijdens uw Python-programmeerreis kunt u situaties tegenkomen waarin u opsomming wilt gebruiken met aangepaste klassen.
Om dit te bereiken, moet uw klasse de methode iter() implementeren , waardoor deze itereerbaar is.
Overweeg een klasse Kleur die kleurnamen en de bijbehorende hexadecimale waarden opslaat:
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}")
In deze code maken we een klasse Color die een woordenboek met kleurnamen en de bijbehorende hexadecimale waarden gebruikt.
Wanneer u enumerate() in de lus gebruikt, levert het de index samen met elk sleutel-waardepaar. Hierdoor kunt u de index, de kleurnaam en de hexadecimale waarde afdrukken in een opgemaakte tekenreeks.
2. Python Enumerate gebruiken met Enum Classes
Python wordt geleverd met een ingebouwde Enum- klasse, waarmee u opsommingstypen kunt maken met automatisch toegewezen gehele getallen.
Kijk bijvoorbeeld eens naar de volgende code:
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}")
In dit script definiëren we een opsommingsrichting met vier leden (NOORD, OOST, ZUID en WEST) met behulp van de enum-module van Python. De functie auto() wijst een automatische waarde toe aan elk lid.
Wanneer u enumerate() in de lus gebruikt, biedt het een index samen met elk opsommingslid. Hiermee kunt u de index, de naam van het lid en de automatisch toegewezen waarde afdrukken in een opgemaakte tekenreeks.
De uitvoer van deze code wordt gegeven in de onderstaande afbeelding:
3. Python Enumerate gebruiken voor het omkeren van bestellingen
In sommige gevallen wilt u items misschien in omgekeerde volgorde opsommen. U kunt dit bereiken door de ingebouwde functie reversed() te gebruiken in combinatie met enumerate() .
Het volgende voorbeeld demonstreert het opsommen van items in omgekeerde volgorde:
my_list = ["apple", "banana", "cherry"]
for index, item in enumerate(reversed(my_list)):
print(f"{index}: {item}")
In deze code herhalen we een omgekeerde versie van my_list met behulp van enumerate(). Dit geeft u de index en het item uit de omgekeerde lijst in elke iteratie. Hiermee kunt u de index en het item in een opgemaakte reeks afdrukken.
De functie reversed() zal de oorspronkelijke reeks niet wijzigen; het creëert een nieuwe iterator die de items in omgekeerde volgorde presenteert.
Bekijk de volgende video voor meer informatie over functies in Python:
Laatste gedachten
Terwijl je doorgaat op je Python-reis, is het beheersen van de functie enumerate() een must. Het is een tool die de leesbaarheid en efficiëntie van code verbetert.
Door gebruik te maken van enumerate(), heb je naadloos toegang tot zowel de index als de waarde in je loops, waardoor er minder behoefte is aan tegenvariabelen of indexering. Het vereenvoudigt je code en maakt het meer Pythonisch.
Of je nu lijsten, tuples, strings of woordenboeken doorloopt, enumerate() zal een waardevol hulpmiddel blijken te zijn. Door te begrijpen en te oefenen met enumerate(), zet u een belangrijke stap in het aanscherpen van uw programmeervaardigheden in Python!
Wat is zelf in Python: voorbeelden uit de echte wereld
Je leert hoe je objecten uit een .rds-bestand in R opslaat en laadt. In deze blog wordt ook besproken hoe je objecten uit R naar LuckyTemplates importeert.
In deze tutorial over DAX-coderingstaal leert u hoe u de functie GENERATE gebruikt en hoe u de titel van een maat dynamisch wijzigt.
Deze zelfstudie behandelt hoe u de Multi Threaded Dynamic Visuals-techniek kunt gebruiken om inzichten te creëren op basis van dynamische gegevensvisualisaties in uw rapporten.
In dit artikel zal ik de filtercontext doornemen. Filtercontext is een van de belangrijkste onderwerpen waarover elke LuckyTemplates-gebruiker in eerste instantie zou moeten leren.
Ik wil laten zien hoe de online service LuckyTemplates Apps kan helpen bij het beheren van verschillende rapporten en inzichten die uit verschillende bronnen zijn gegenereerd.
Leer hoe u wijzigingen in uw winstmarge kunt berekenen met behulp van technieken zoals vertakking van metingen en het combineren van DAX-formules in LuckyTemplates.
Deze tutorial bespreekt de ideeën van materialisatie van datacaches en hoe deze de prestaties van DAX beïnvloeden bij het leveren van resultaten.
Als u tot nu toe nog steeds Excel gebruikt, is dit het beste moment om LuckyTemplates te gaan gebruiken voor uw zakelijke rapportagebehoeften.
Wat is LuckyTemplates Gateway? Alles wat u moet weten