-
Introducere în programarea funcțională și biblioteca itertools
- Ce este programarea funcțională și de ce este importantă
- Prezentarea bibliotecii itertools și scopul său
- Importarea bibliotecii itertools și examinarea funcțiilor disponibile
-
Funcții de combinare din itertools
itertools.product(): produsul cartezian al input-uriloritertools.permutations(): permutări ale unui set de elementeitertools.combinations(): combinații de elemente luate câte nitertools.combinations_with_replacement(): combinații cu înlocuire- Exemple și exerciții pentru fiecare funcție
-
Funcții de iterare din itertools
itertools.cycle(): ciclarea prin elementele unui iteratoritertools.repeat(): repetarea unui element de un număr specificat de oriitertools.count(): generarea unui sir infinit de numereitertools.chain(): concatenarea mai multor iterabile- Exemple și exerciții pentru fiecare funcție
-
Funcții de filtrare din itertools
itertools.compress(): filtrarea elementelor în funcție de un selectoritertools.filterfalse(): filtrarea elementelor care nu îndeplinesc o anumită condițieitertools.takewhile(): extragerea elementelor până când o condiție este îndeplinităitertools.dropwhile(): eliminarea elementelor până când o condiție este îndeplinită- Exemple și exerciții pentru fiecare funcție
-
Funcții de transformare din itertools
itertools.starmap(): aplicarea unei funcții cu mai mulți parametri la inputitertools.accumulate(): aplicarea unei funcții binare în mod cumulativ la input- Exemple și exerciții pentru fiecare funcție
-
Funcții de grupare din itertools
itertools.groupby(): gruparea elementelor consecutive care îndeplinesc o anumită condiție- Exemple și exerciții pentru această funcție
Exemple și exerciții pentru fiecare subpunct:
Exemplu: itertools.product()
import itertools
produs_cartezian = list(itertools.product("AB", repeat=2))
print(produs_cartezian) # Output: [('A', 'A'), ('A', 'B'), ('B', 'A'), ('B', 'B')]
Exercițiu:
Generați produsul cartezian al unui set de numere și a unui set de litere.
Exemplu: itertools.permutations()
import itertools
permutari = list(itertools.permutations("ABC", 2))
print(permutari) # Output: [('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]
Exercițiu:
Generați toate permutările posibile ale cuvântului „MATE”.
Exemplu: itertools.cycle()
import itertools
ciclu = itertools.cycle("ABC")
for i in range(10):
print(next(ciclu), end=" ") # Output: A B C A B C A B C A
Exercițiu:
Utilizați itertools.cycle() pentru a genera un sir repetitiv de culori.
Exemplu: itertools.compress()
import itertools
selector = [True, False, True, False, True]
date = [1, 2, 3, 4, 5]
rezultat = list(itertools.compress(date, selector))
print(rezultat) # Output: [1, 3, 5]
Exercițiu:
Folosiți itertools.compress() pentru a extrage numerele impare dintr-o listă de numere folosind un selector.
Exemplu: itertools.starmap()
import itertools
lista_perechi = [(1, 2), (3, 4), (5, 6)]
suma_perechi = list(itertools.starmap(lambda x, y: x + y, lista_perechi))
print(suma_perechi) # Output: [3, 7, 11]
Exercițiu:
Folosiți itertools.starmap() pentru a calcula produsul elementelor a două liste de numere.
Exemplu: itertools.groupby()
import itertools
date = [("animal", "pisica"), ("animal", "caine"), ("planta", "rosie"), ("animal", "elefant"), ("planta", "ghiocel")]
# Sortăm elementele în funcție de cheia de grupare
date.sort(key=lambda x: x[0])
for cheie, grup in itertools.groupby(date, lambda x: x[0]):
print(f"{cheie}: {list(grup)}")
Output:
animal: [('animal', 'pisica'), ('animal', 'caine'), ('animal', 'elefant')]
planta: [('planta', 'rosie'), ('planta', 'ghiocel')]
Exercițiu:
Folosiți itertools.groupby() pentru a grupa o listă de numere în funcție de paritate.
Rezumat:
În această lecție, am învățat despre programarea funcțională și biblioteca itertools. Am explorat diferitele funcții pe care le oferă itertools, cum ar fi funcțiile de combinare, iterare, filtrare, transformare și grupare. Am aplicat aceste funcții în exemple și am propus exerciții suplimentare pentru a consolida cunoștințele.