Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Brug af indbyggede iteratorer | Python-Iteratorer
Funktionelle Programmeringskoncepter i Python

Brug af indbyggede iteratorer

Stryg for at vise menuen

Python tilbyder flere indbyggede iteratorer, der gør det muligt at bearbejde samlinger på udtryksfulde og hukommelseseffektive måder. Tre af de mest anvendte er enumerate, zip og map.

  • enumerate gør det muligt at gennemløbe en sekvens, mens både indeks og værdi for hvert element bevares;
  • zip gør det muligt at iterere over flere sekvenser parallelt og parre elementer sammen;
  • Bemærk, at map er en højere-ordens funktion – et begreb vi tidligere har brugt til at anvende opgaver på data. Her undersøger vi dette værktøj igen gennem iteratorprotokollen. I stedet for blot at se det som en måde at bearbejde en liste på, opfattes det nu som et specialiseret objekt, der producerer resultater efter behov, hvilket ændrer forståelsen af map fra et statisk funktionelt værktøj til en dynamisk, hukommelseseffektiv strøm.

Disse iteratorer er uundværlige til opgaver som bearbejdning af parallelle lister, datatransformation og skrivning af korte løkker. Som vist i videoen kan korrekt brug af dem forenkle koden og reducere fejl, især ved arbejde med store eller komplekse datasæt.

123456
# Using enumerate and zip to process two lists in parallel names = ["Alice", "Bob", "Charlie"] scores = [85, 92, 78] for idx, (name, score) in enumerate(zip(names, scores), start=1): print(f"{idx}. {name} scored {score}")

I denne kode parrer zip(names, scores) hvert navn med den tilsvarende score og skaber en iterator af tupler som ("Alice", 85). Ved at indpakke dette med enumerate tilføjes en tæller, der starter ved 1, så hver iteration giver indeks, navn og score. Løkken udskriver hver elevs navn og score, foranstillet af deres placering i listen. Denne metode er både kortfattet og letlæselig og demonstrerer, hvordan indbyggede iteratorer effektiviserer arbejdet med flere sekvenser.

question mark

Hvad er hovedformålet med at bruge enumerate sammen med zip i dette kodeeksempel?

Vælg det korrekte svar

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 5. Kapitel 1

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 5. Kapitel 1
some-alt