Co to jest list comprehension w Pythonie?

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.

Scroll to Top