List comprehension to potężna funkcja języka Python, umożliwiająca tworzenie nowych list poprzez stosowanie wyrażenia na każdym elemencie sekwencji lub iterowalnego obiektu, często w jednej linii kodu. Jest to bardziej zwięzły sposób na tworzenie list niż tradycyjne pętle for, co sprawia, że kod jest czytelniejszy i często wydajniejszy.
Przykład użycia
Rozważmy sytuację, w której chcemy utworzyć listę kwadratów liczb od 1 do 10. Tradycyjne podejście z wykorzystaniem pętli for wyglądałoby następująco:
squares = [] # Pusta lista na kwadraty liczb
for i in range(1, 11):
squares.append(i ** 2) # Dodawanie kwadratu każdej liczby do listy
Za pomocą list comprehension możemy to zrobić w bardziej zwięzły sposób:
squares = [i ** 2 for i in range(1, 11)] # Tworzenie listy kwadratów liczb
Dodatkowe warunki
List comprehension pozwala również na dodawanie warunków. Na przykład, jeśli chcemy utworzyć listę kwadratów tylko parzystych liczb z przedziału od 1 do 10, możemy to zrobić w następujący sposób:
even_squares = [i ** 2 for i in range(1, 11) if i % 2 == 0] # Kwadraty parzystych liczb
Zagnieżdżone list comprehension
Możliwe jest również stosowanie zagnieżdżonych list comprehension, co jest przydatne przy pracy z listami list (matrycami) lub przy bardziej złożonych operacjach. Na przykład, jeśli chcemy “spłaszczyć” listę list do jednej listy, możemy zrobić to tak:
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] # Lista list (matryca)
flattened = [elem for row in matrix for elem in row] # Spłaszczanie listy
Podsumowanie
List comprehension to potężne narzędzie w Pythonie, które pozwala na tworzenie list w bardziej zwięzły i czytelny sposób. Dzięki możliwości dodawania warunków i stosowania zagnieżdżenia, umożliwia skuteczne i wydajne manipulowanie danymi. Używanie list comprehension może znacznie poprawić czytelność kodu oraz jego wydajność, co jest szczególnie przydatne w analizie danych, pracy z dużymi zbiorami danych czy przy operacjach na listach list.
Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs video Python w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.