Lista składana
Lista składana lub wyrażenie listowe (ang. list comprehension) – konstrukcja dostępna w niektórych językach programowania (np. Python) umożliwiająca tworzenie nowej listy na podstawie istniejącej sekwencji. Pozwala na zwięzły zapis złożonych operacji na listach, łącząc w jednej linii kodu tworzenie listy, pętlę i instrukcję warunkową[1][2][3][4].
Składnia
[edytuj | edytuj kod]Ogólna struktura listy składanej to[2]:
lista = [wyrażenie for wyraz in sekwencja if warunek]
Instrukcja warunkowa jest opcjonalna, więc lista składana może mieć również postać[5]:
lista = [wyrażenie for element in kolekcja]
Składnia ta nawiązuje do matematycznej notacji (w języku angielskim określanej jako set-builder notation lub set comprehension), za pomocą której można definiować zbiór[5]. Zgodnie z tą notacją, z definicji zbioru wynika, że element należy do zbioru wtedy i tylko wtedy, gdy spełnia funkcję zdaniową [6]. Przykładowo, zapis oznacza zbiór liczb naturalnych mniejszych bądź równych 3[7].
Przykład zastosowania listy składanej w języku Python to:
l = [2 * n for n in (0, 1, 2) if n > 0]
Powyższa linia kodu tworzy listę na podstawie krotki (0, 1, 2)
wybierając z niej elementy większe od zera i mnożąc je przez 2. Po wykonaniu tej linii kodu zmienna l
zawiera listę dwuelementową [2, 4]
[5]. Aby uzyskać taki sam wynik za pomocą klasycznej pętli należałoby użyć następującego fragmentu kodu:
l = []
for n in (0, 1, 2):
if n > 0:
l.append(2 * n)
Pokrewne konstrukcje
[edytuj | edytuj kod]W języku Python analogiczną konstrukcję można stosować także do tworzenia słowników i zbiorów[1]. Przykładowo, następujący fragment kodu tworzy słownik, w którym kluczami są liczby naturalne od 1 do 5, a wartościami kwadraty tych liczb[8]:
s = {x: x ** 2 for x in [1, 2, 3, 4, 5]}
Przypisy
[edytuj | edytuj kod]- ↑ a b Ewelina Bosko , Python i jego zaczarowane struktury. List comprehension (oraz dict i set). [online], 17 marca 2021 [dostęp 2024-10-02] (pol.).
- ↑ a b 1.6. Słownik Pythona — Python 101 0.5 - dokumentacja [online], python101.readthedocs.io [dostęp 2024-10-02] .
- ↑ 5. Data Structures [online], Python documentation [dostęp 2024-09-30] (ang.).
- ↑ Jak korzystać ze składni List Comprehension w Pythonie? [online], Kuba W., 4 maja 2024 [dostęp 2024-09-30] (pol.).
- ↑ a b c [] list comprehension — Python Reference (The Right Way) 0.1 documentation [online], python-reference.readthedocs.io [dostęp 2024-09-30] (ang.).
- ↑ Helena Rasiowa: Wstęp do matematyki współczesnej. Wyd. 6. Warszawa: PWN, 1977, s. 27, seria: Biblioteka Matematyczna, t. 30. OCLC 1412991661.
- ↑ Eric W. Weisstein , Set [online], mathworld.wolfram.com [dostęp 2024-10-05] (ang.).
- ↑ Python Dictionary Comprehension [online], GeeksforGeeks, 29 października 2017 [dostęp 2024-10-02] (ang.).