3. List/Dict/Set comprehensions

Używa się w celu zwiększenia czytelności kodu.

Hint

Z początku warto napisać wersję linniową, dopiero później przejść na “comprehension”

lista_parzystych_comprehension = [element for element in range(2, 21, 2)]
print(lista_parzystych_comprehension)
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
lista_parzystych_comprehension2 = [element for element in range(2, 21) if (element % 2) == 0 ]
print(lista_parzystych_comprehension2)
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
lista_parzystych_comprehension3 = [element for element in range(2, 21) if not (element % 2)]
print(lista_parzystych_comprehension3)
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

3.1. Dict comprehension

slownik = {'Adam': 'Audi', 'Tomek': 'BMW', 'Kasia': 'Citroen'} # doctest: +SKIP

3.2. Set comprehension

zbior = {i**2 for i in range(5)}
print(zbior)
{0, 1, 4, 9, 16}

3.3. Zadania

3.3.1. Pierwsze

  • Znajdz 20 liczb podzielnych jednocześnie przez 2 i 5

3.3.2. Drugie

  • Stwórz mapowanie (dict comprehension)

    • klucz to liczba, wartość to kolejne litery z alfabetu,

    • {0: 'A', 1: 'B', 2: 'C', 3: 'D'}

Hint

Spójrz na tablicę ASCII

  • Da się konwertować liczbę na literę,

  • da się użyć funkci chr() google

3.3.3. Trzecie

  • mając listę dat w pliku

  • Przetwórz plik wydobywająć jedynie czas (list comprehension) * na podstawie tej listy - utwórz listę, gdzie zdarzenie nastąpiło w 19 sekundzie