Wbudowane funkcje iteratorów
Lekcja 7 z 13 w kursie Iteratory w Pythonie w Coddy.
Python udostępnia kilka wbudowanych funkcji, które działają z iteratorami, ułatwiając manipulowanie danymi iterowalnymi i ich przetwarzanie. Przyjrzyjmy się trzem często używanym funkcjom: enumerate(), zip() i reversed().
1. enumerate()
Funkcja enumerate() dodaje licznik do obiektu iterowalnego i zwraca go jako obiekt enumerate. Jest szczególnie przydatna, gdy potrzebujesz zarówno indeksu, jak i wartości elementów obiektu iterowalnego.
fruits = ['apple', 'banana', 'cherry']
for index, fruit in enumerate(fruits):
print(f"{index}: {fruit}")
# Wynik:
# 0: apple
# 1: banana
# 2: cherry
2. zip()
Funkcja zip() tworzy iterator krotek, w których każda krotka zawiera i-ty element z każdego z wejściowych obiektów iterowalnych. Przydaje się do łączenia wielu obiektów iterowalnych.
names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30, 35]
for name, age in zip(names, ages):
print(f"{name} is {age} years old")
# Wynik:
# Alice ma 25 lat
# Bob ma 30 lat
# Charlie ma 35 lat
3. reversed()
Funkcja reversed() zwraca iterator odwrócony. Tworzy iterator, który uzyskuje dostęp do podanej sekwencji w odwrotnej kolejności.
numbers = [1, 2, 3, 4, 5]
for num in reversed(numbers):
print(num)
# Wynik:
# 5
# 4
# 3
# 2
# 1
Te wbudowane funkcje zapewniają potężne narzędzia do pracy z iteratorami, pozwalając łatwo dodawać liczniki, łączyć obiekty iterowalne lub odwracać sekwencje. Mogą znacznie uprościć kod i zwiększyć jego czytelność podczas pracy z iterowalnymi strukturami danych.
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wyzwanie
ŁatwyUtwórz program, który przetwarza listę produktów i ich cen, łącząc funkcje enumerate(), zip() i reversed(), aby wygenerować sformatowany wynik.
Otrzymujesz następujące dane wejściowe:
- Tekst zawierający nazwy produktów oddzielone przecinkami
- Tekst zawierający odpowiadające im ceny oddzielone przecinkami
Twój program powinien:
- Przekształcić teksty wejściowe w listy produktów i cen
- Użyć
zip(), aby połączyć produkty z ich cenami - Użyć
reversed(), aby odwrócić kolejność połączonych elementów - Użyć
enumerate(), aby dodać licznik do każdego elementu - Wypisać każdy element w formacie: "#{counter}. {product}: ${price}"
Wypisz każdy sformatowany element w nowej linii.
Spróbuj swoich sił
# Wczytaj dane wejściowe
products = input().split(',')
prices = input().split(',')
# Przekonwertuj prices na liczby zmiennoprzecinkowe
prices = [float(price) for price in prices]
# TODO: Napisz swój kod poniżej
# Wskazówka: Użyj zip(), reversed() i enumerate(), aby przetworzyć dane
# Wypisz sformatowany wynik
# Pamiętaj, aby wypisać każdy element w nowej liniiWszystkie lekcje w sekcji Iteratory w Pythonie
2Tworzenie własnych iteratorów
Implementowanie __iter__()Implementowanie __next__()Iteratory nieskończonePoćwicz samodzielnie: Kompilator Python online