Listy składane
Listy składane (ang. list comprehensions) – są to krótkie i zwięzłe konstrukcje, które pozwalają na tworzenie list w jednej linii kodu. Listy składane są potężnym narzędziem, które sprawia, iż kod staje się bardziej czytelny i efektywny.
Składnia listy składanej
Składnia list składanych jest dość prosta. Oto ogólna struktura:
nowa_lista – nazwa nowo tworzonej listy
wyrażenie – wartość jaka będzie elementem nowej listy
element – zmienna do której zostają wczytane w pętli for wszystkie elementy z sekwencji
sekwencja – jest to lista, na podstawie której tworzymy nową listę
warunek (opcjonalny) – służy do filtrowania elementów
Przykład
Spróbujmy stworzyć nową listę, która będzie zawierała wyniki podniesienia do potęgi drugiej elementów drugiej listy. Spójrzcie na poniższy fragment kodu.
Na początku definiujemy sobie listę zawierającą liczby całkowite od 1 do 5.
W następnej linii tworzymy nową listę kwadratyLiczb. Analizę tej linii zaczniemy od końca. Na podstawie sekwencji: liczby w pętli for wczytywane są do zmiennej x kolejne elementy, następnie element x zostaje podniesiony do potęgi drugiej (wyrażenie: x ** 2). W tym przykładzie nie ma warunku po słowie if. Nie był nam potrzebny, ponieważ chcieliśmy wszystkie elementy listy liczby podnieść do potęgi drugiej.
Nie zapomnijcie, iż konstrukcja ta musi się znajdować w nawiasach kwadratowych.
W ostatniej linii wypisujemy na okno konsoli elementy nowo powstałej listy. Otrzymujemy:
Przykład zawierający warunek
Spróbujmy stworzyć nową listę, która będzie zawierała słowa, które zawierają więcej niż 5 liter. Listę będziemy tworzyć na podstawie pewnego zdania. Spójrzcie na poniższy przykład:
W pierwszej linii mamy zdefiniowaną zmienną tekstową zdanie. Wiemy już, iż nową listę możemy stworzyć na podstawie innej listy. Dlatego ze zmiennej zdanie tworzymy listę przy użyciu funkcji split().
Funkcja split tworzy listę z ciągu znaków. Na przykładzie nie ma ona żadnych parametrów. Jednak może ona występować z parametrem: separator (jest to znak wg którego będziemy dzielić tekst). Domyślnie jest to spacja.
Kod: zdanie.split() i zdanie.split(” „) zwraca dokładnie tę samą listę. Czasami jednak chcemy wyłuskać słowa oddzielone przecinkami, używamy wtedy składni: zdanie.split(„,”).
W tym przykładzie występuje warunek po if. Korzystając z funkcji len, sprawdzamy, czy poszczególne elementy listy mają więcej liter niż 5. I tylko te elementy, które spełniają ten warunek zostają wybrane do nowej listy dlugieSlowa.
Funkcja len() – wylicza długość ciągu znaków.
W ostatniej linii wypisujemy wszystkie elementy nowej listy. Otrzymujemy:
Podsumowanie
Listy składane mają wiele zalet. Pozwalają na zapis skomplikowanych operacji w jednej linii kodu. Zwięzła składnia sprawia, iż kod jest bardziej czytelny i łatwiej go zrozumieć. Dodatkowo listy składane są zwykle bardziej wydajne niż tradycyjne pętle. Warto się ich nauczyć i zacząć stosować we własnych programach.
Polecamy
Podręcznik do nauki programowania dla dzieci i młodzieży w języku Python, Ebook: Zadania dla młodzieży szkolnej Python oraz Kurs Online: Python dla dzieci i młodzieży – Programowanie od podstaw.