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 Iterators
Funktionelle Programmeringskoncepter i Python

bookBrug af indbyggede iteratorer

Stryg for at vise menuen

Python tilbyder flere indbyggede iteratorer, der gør det muligt at behandle 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 spores;
  • zip gør det muligt at iterere over flere sekvenser parallelt ved at parre elementer sammen;
  • Bemærk, at map er en Higher-Order Function – et begreb vi tidligere har brugt til at anvende opgaver på data. Her genbesøger vi dette værktøj gennem iteratorprotokollen. I stedet for blot at se det som en måde at behandle en liste på, betragtes det nu som et specialiseret objekt, der producerer resultater efter behov, hvilket ændrer vores forståelse af map fra et statisk funktionelt værktøj til en dynamisk, hukommelseseffektiv strøm.

Disse iteratorer er uvurderlige til opgaver som behandling af parallelle lister, datatransformation og skrivning af korte løkker. Som vist i videoen kan korrekt brug 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}")
copy

I denne kode parrer zip(names, scores) hvert navn med den tilsvarende score og opretter 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 på listen. Denne tilgang er både kortfattet og læsbar 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