SAMOUCZEK JĘZYKA PYTHON ROZDZIAŁY   
Rozdział 4: Struktury danych.

1: Więcej o listach - 2: Używanie listy jako stosu - 3: Używanie listy jako kolejki
4: Mechanizmy programowania funkcjonalnego - 5: Rozszerzenie składni listy - 6: Instrukcje del
7: Listy niemutowalne i sekwencyjne - 8: Słownik - 9: Jeszcze trochę o warunkach
10: Porównanie sekwencji i innych typów

Lekcja 5. Rozszerzenia składni list.


Są one spójnym sposobem na tworzenie list bez odwoływania się do map(), filter() lub lambda.Przedstawione poniżej definicje list często są bardziej przejrzyste niż listy tworzone za pomocą ww. konstrukcji. Każda z rozszerzonych konstrukcji składa się z wyrażenia, po którym następuje klauzula for, potem zero lub więcej klauzuli for lub if. W rezultacie otrzymujemy listę powstałą w wyniku wyliczenia wyrażenia w kontekście klauzul for i if, które po nim występują. Jeśli wyrażenie ma typ krotki, musi zostać objęte nawiasami okrągłymi.

 >>> owoce = ['  banan', '  jerzyna ', 'owoc pasji  ']
>>> [bron.strip() for bron in owoce]
['banan', 'jerzyna', 'owoc pasji']
>>> wek = [2, 4, 6]
>>> [3*x for x in wek]
[6, 12, 18]
>>> [3*x for x in wek if x > 3]
[12, 18]
>>> [3*x for x in wek if x < 2]
[]
>>> [{x: x**2} for x in wek]
[{2: 4}, {4: 16}, {6: 36}]
>>> [[x,x**2] for x in wek]
[[2, 4], [4, 16], [6, 36]]


# błąd - dla krotek wymaga się nawiasów okrągłych
>>> [x, x**2 for x in wek]
File "<stdin>", line 1
[x, x**2 for x in wek]
^
SyntaxError: invalid syntax
>>> [(x, x**2) for x in wek]
[(2, 4), (4, 16), (6, 36)]
>>> wek1 = [2, 4, 6]
>>> wek2 = [4, 3, -9]
>>> [x*y for x in wek1 for y in wek2]
[8, 6, -18, 16, 12, -36, 24, 18, -54]
>>> [x+y for x in wek1 for y in wek2]
[6, 5, -7, 8, 7, -5, 10, 9, -3]
(SyntaxError: zła składnia)
Strona główna - O Pythonie - Interpreter - Samouczek - Przykłady programów - Linki