Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Python-iterabler: Förståelse för Sekvenser och Datastrukturer | Bemästra Iteratorer och Generatorer i Python
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Python Strukturell Programmering

bookPython-iterabler: Förståelse för Sekvenser och Datastrukturer

Vad är iterables?

I Python är iterables objekt som kan traverseras eller loopas igenom, vilket returnerar deras element ett i taget. Denna förmåga att producera ett element åt gången gör dem ovärderliga i uppgifter som loopning, listuppfattningar och uppackning.

Några vanliga iterables inkluderar:

  • Datastrukturer: listor, tupler, ordböcker, mängder;
  • Strängar: producerar sina tecken ett i taget;
  • Egna objekt: görs iterabla genom att implementera metoden __iter__.

En viktig egenskap hos iterables är att de inte själva "kommer ihåg" sin position under traverseringen. För att faktiskt traversera deras element krävs en iterator.

1234567
numbers = [1, 2, 3, 4] for num in numbers: print(num) title = "codefinity" for char in title: print(char)
copy

for-loopen traverserar automatiskt elementen i iterable-objektet och bearbetar dem ett i taget.

När Python bearbetar en iterable konverterar den objektet till en iterator med hjälp av funktionen iter(). Internt anropar iter() objektets metod __iter__(). På liknande sätt hämtar funktionen next() nästa värde från iteratorn genom att anropa dess metod __next__().

Här är ett exempel som visar hur detta fungerar:

12345678910
numbers = [1, 2, 3, 4] # Converting the list to an iterator numbers_iterator = iter(numbers) # Accessing elements one at a time using `next()` print(next(numbers_iterator)) # Output: 1 print(next(numbers_iterator)) # Output: 2 print(next(numbers_iterator)) # Output: 3 print(next(numbers_iterator)) # Output: 4 print(next(numbers_iterator)) # Output: StopIteration
copy

Iterabler vs. Iteratorer

Medan alla iteratorer är iterabler, är inte alla iterabler iteratorer. En iterator kommer ihåg sin position under genomgången och ger sekventiell åtkomst till element tills slutet är nått.

Begränsning av iterabler

Vid arbete med stora datamängder kan det vara ineffektivt att lagra alla element i en iterable som en lista. Om till exempel talföljden genereras dynamiskt eller är för stor för att rymmas i minnet, behövs ett sätt att bearbeta element vid behov. Här blir iteratorer (behandlas i nästa kapitel) och lat utvärdering (introduceras senare) avgörande.

Uppgift

Swipe to start coding

Skriv ett Python-skript för att simulera kast med en blandad sexsidig tärning med hjälp av iteratorer. Fyll i de saknade delarna av koden för att skapa en iterator, hämta element med next() och hantera slutet av iterationen på ett smidigt sätt.

  1. En lista [1, 2, 3, 4, 5, 6] representerar tärningens sidor. Listan har redan blandats med random.shuffle().
  2. Konvertera den blandade listan till en iterator så att du kan gå igenom dess element ett i taget.
  3. Använd funktionen next() för att simulera tärningskastet och skriv ut varje sida tills alla sidor har använts.
  4. När iteratorn är slut, hantera undantaget StopIteration för att indikera att alla kast är klara.

Lösning

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 6. Kapitel 1
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

close

bookPython-iterabler: Förståelse för Sekvenser och Datastrukturer

Svep för att visa menyn

Vad är iterables?

I Python är iterables objekt som kan traverseras eller loopas igenom, vilket returnerar deras element ett i taget. Denna förmåga att producera ett element åt gången gör dem ovärderliga i uppgifter som loopning, listuppfattningar och uppackning.

Några vanliga iterables inkluderar:

  • Datastrukturer: listor, tupler, ordböcker, mängder;
  • Strängar: producerar sina tecken ett i taget;
  • Egna objekt: görs iterabla genom att implementera metoden __iter__.

En viktig egenskap hos iterables är att de inte själva "kommer ihåg" sin position under traverseringen. För att faktiskt traversera deras element krävs en iterator.

1234567
numbers = [1, 2, 3, 4] for num in numbers: print(num) title = "codefinity" for char in title: print(char)
copy

for-loopen traverserar automatiskt elementen i iterable-objektet och bearbetar dem ett i taget.

När Python bearbetar en iterable konverterar den objektet till en iterator med hjälp av funktionen iter(). Internt anropar iter() objektets metod __iter__(). På liknande sätt hämtar funktionen next() nästa värde från iteratorn genom att anropa dess metod __next__().

Här är ett exempel som visar hur detta fungerar:

12345678910
numbers = [1, 2, 3, 4] # Converting the list to an iterator numbers_iterator = iter(numbers) # Accessing elements one at a time using `next()` print(next(numbers_iterator)) # Output: 1 print(next(numbers_iterator)) # Output: 2 print(next(numbers_iterator)) # Output: 3 print(next(numbers_iterator)) # Output: 4 print(next(numbers_iterator)) # Output: StopIteration
copy

Iterabler vs. Iteratorer

Medan alla iteratorer är iterabler, är inte alla iterabler iteratorer. En iterator kommer ihåg sin position under genomgången och ger sekventiell åtkomst till element tills slutet är nått.

Begränsning av iterabler

Vid arbete med stora datamängder kan det vara ineffektivt att lagra alla element i en iterable som en lista. Om till exempel talföljden genereras dynamiskt eller är för stor för att rymmas i minnet, behövs ett sätt att bearbeta element vid behov. Här blir iteratorer (behandlas i nästa kapitel) och lat utvärdering (introduceras senare) avgörande.

Uppgift

Swipe to start coding

Skriv ett Python-skript för att simulera kast med en blandad sexsidig tärning med hjälp av iteratorer. Fyll i de saknade delarna av koden för att skapa en iterator, hämta element med next() och hantera slutet av iterationen på ett smidigt sätt.

  1. En lista [1, 2, 3, 4, 5, 6] representerar tärningens sidor. Listan har redan blandats med random.shuffle().
  2. Konvertera den blandade listan till en iterator så att du kan gå igenom dess element ett i taget.
  3. Använd funktionen next() för att simulera tärningskastet och skriv ut varje sida tills alla sidor har använts.
  4. När iteratorn är slut, hantera undantaget StopIteration för att indikera att alla kast är klara.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 6. Kapitel 1
single

single

some-alt