Documente Academic
Documente Profesional
Documente Cultură
x = (1, 2, 3, “Dirt”)
print(x[3]) # Dirt
print(x) # (1, 2, 3, ‘Dirt’)
l1 = [] len(l1) # 0
print(l1) # []
l2 = [1, 2, 3] len(l2) # 3
print(l2) # [1, 2, 3]
l3 = [“Red”, 2] len(l3) # 2
print(l2) # [‘Red’, 2]
Listă (3) - Accesare
Elementele listei pot fi accesate prin index,
care poate fi atât pozitiv, cât și negativ.
(primul index este 0).
l = [1, 2, 3, 4, 5]
print(l[1]) # 2
print(l[4]) # 5
0 1 2 3 4
l = [1, 2, 7]
print(l[::-1]) # [7, 2, 1]
Listă (5)
Adăugare element cu append. Adăugare element cu insert.
l = [1] l = [3]
print(l) # [1] print(l) # [3]
l.append(2) l.insert(0, 4)
print(l) # [1, 2] print(l) # [4, 3]
l.insert(2, 5)
print(l) # [4, 3, 5]
Listă (6)
Eliminare element cu pop. Eliminare element cu remove.
l = [1, 2, 3, 4] l = [1, 1, 2, 3]
print(l) # [1, 2, 3, 4] print(l) # [1, 1, 2, 3]
# Eliminare la un index
l.pop(1) l.remove(1)
print(l) # [1, 3, 4] print(l) # [1, 2, 3]
print(l) # [1, 2, 3, 4, 5]
l.clear()
print(l) # []
Sortarea unei liste
Sortarea unei liste se face folosind funcția
sorted. Putem sorta lista în ordine
descrescătoare cu argumentul
reverse=True. Această funcție întoarce lista
sortată și nu modifică lista primită.
l = [3, 0, -5, 2]
print(sorted(l)) # [-5, 0, 2, 3]
print(sorted(l, reverse=True)) # [3, 2, 0, -5]
print(l) # [3, 0, -5, 2]
Iterarea printr-o listă
Pentru a itera prin elementele unei liste,
folosim sintaxa for e in list, în care
variabila e va lua pe rând valoarea tuturor
elementelor.
l = [1, 5, 7]
for e in l:
print(e)
# 1
# 5
# 7
Căutarea printr-o listă
Pentru a verifica că un element e se află
într-o listă folosim sintaxa: e in list.
l = [1, 5, 7]
print(1 in l) # True
print(2 in l) # False
Copierea unei liste
Folosind operatorul =. Folosind metoda copy.
a = [3, 4, 5] a = [3, 4, 5]
b = a b = a.copy()
a = [3, 4] a = [3, 4]
b = [1, 2] b = [1, 2]
a = a + b a.extend(b)
l = [i ** 2 for i in range(4)]
print(l) # [0, 1, 4, 9]
List comprehension (2)
Într-un list comprehension putem inclusiv să
impunem o condiție elementelor din listă.
l = [i ** 2 for i in range(8) if i % 2 == 0]
print(l) # [0, 4, 16, 36]
t = (1, 2, True)
l = list(t)
print(l) # [1, 2, True]
s = “Fred”
l = list(s)
print(s) # ['F', 'r', 'e', 'd']
Dicționar
Este structura de date ce permite stocarea
unei perechi de tipul cheie, valoare.
Un dicționar se creează cu {}.
team = {}
print(team) # {}
team = {
'Colorado' : 'Rockies',
'Boston' : 'Red Sox',
'Minnesota': 'Twins',
'Milwaukee': 'Brewers',
'Seattle' : 'Mariners'
}
Accesarea unui element
Pentru a lua valoarea unei chei dintr-un
dicționar, avem sintaxa d[cheie]. Dacă cheia
nu există, vom primi eroare.
team = {
'Colorado' : 'Rockies',
'Boston' : 'Red Sox',
'Minnesota': 'Twins',
'Milwaukee': 'Brewers',
'Seattle' : 'Mariners'
}
print(team[‘Colorado’]) # “Rockies”
Adăugarea într-un dicționar
Putem adăuga o cheie într-un dicționar
folosind:
d[cheie] = valoare
# white
# red
Iterarea printr-un dicționar
(2)
Pentru a itera prin valorile unui dicționar,
folosim d.values(), care întoarce o listă cu
valorile din dicționar.
# 10
# 20
Iterarea printr-un dicționar
(3)
Pentru a itera prin elementele unui dicționar,
folosim d.items(), care întoarce o listă de
tupluri (cheie, valoare) din dicționar.
# white - 10
# red - 20
Pauză
Set
● Seturile sunt o structură de date, ce oferă
posibilitatea de a construi și manipula
colecții neordonate de elemente unice.
● Nu acceptă indexare sau slicing.
● Un set se creează cu {}.
Set - operații
s = set()
print(f”Hello, {name}!”)
Corpul funcției
Funcții
● O funcție returnează implicit None.
● O bună practică este ca funcția să fie
văzută ca un black box, nu modifică nimic
din afara corpului ei.
no_calls = 0
def call(phone_number):
no_calls += 1
Funcții
Definirea unei funcții fără corp este posibilă
folosind cuvântul cheie pass.
def count_atoms_on_jupiter():
pass
Parametrii impliciți
● Parametrii impliciți se definesc cu =.
def greet(name=’Monica’):
print(f”Hi, {name}!”)
def my_sum(*args):
sum = 0
for num in args:
sum += num
return sum
print(my_sum(1, 2, 3, 4)) # 10
Parametrii cheie valoare
● Parametrii unei funcții pot fi direct
specificați prin nume.
● Parametrii sunt văzuți ca un dicționar.
def capitals(**kwargs):
for country, capital in kwargs.items():
print(f'{country}: {capital}')
capitals(Romania='Bucharest', Italy='Rome')
# Romania: Bucharest
# Italy: Rome
Funcții anonime
● Sunt folosite în special în programarea
funcțională.
● O funcție care nu are nume se numește
funcție anonimă sau funcție lambda.
● Evită definirea unei funcții obișnuite
pentru o serie de operații simple.
Funcții anonime
● Pot fi declarate oriunde în cod și pot fi
atribuite variabilelor.
● Valoarea de retur a funcției este implicită
expresiei efectuate.
sum2 = lambda x, y : x + y
print(sum2(2, 3)) # 5
Predicat
● Se referă la o funcție ce întoarce valoarea
de adevăr a unei expresii.
is_even = lambda x : x % 2 == 0
print(is_even(2)) # True
Funcționale
● Este abordarea funcțională a unor
proceduri.
● Scriem cod mai puțin și mai expresiv.
● Funcționale des utilizate:
○ Map
○ Filter
● Mai există:
○ Reduce
○ Zip
Funcționala map
● Poate fi asemănată cu benzi de
asamblare.
● Aplică o operație tuturor obiectelor puse
pe bandă.
values = [1, 2, 3]
triple = lambda x : x * 3
print(triple_values) # [3, 6, 9]
Funcționala map
● Operația efectuată poate fi definită și ca o
funcție normala.
values = [1, 2, 3]
def triple(x):
return x * 3
print(triple_values) # [3, 6, 9]
Funcționala filter
● Poate fi asemănată unei site. Anumite
obiecte pot trece prin sită, altele nu.
Filter
Funcționala filter
● Primește un predicat și o colecție și
întoarce colecția formată din elementele
care respectă predicatul.
values = [1, 2, 3]
is_odd = lambda x : x % 2 != 0
print(odd_values) # [1, 3]
Funcționala filter
● Operația efectuată poate fi definită și ca o
funcție normală.
values = [1, 2, 3]
def is_odd(x):
return x % 2 != 0
print(odd_values) # [1, 3]
Procedural vs funcțional
Afișați pătratul elementelor unei liste care
sunt divizibile cu 7.
for e in my_list:
if e % 7 == 0:
result.append(e ** 2)
Procedural vs funcțional
Afișați pătratul elementelor unei liste care
sunt divizibile cu 7.
square = lambda x : x ** 2
div7 = lambda x : x % 7 == 0