565.78K
Category: programmingprogramming

Metode și funcții predefinite, ce pot fi aplicate în lucrul cu tipurile de date complexe

1.

METODE ȘI FUNCȚII PREDEFINITE,
CE POT FI APLICATE ÎN LUCRUL
CU TIPURILE DE DATE COMPLEXE
ȘCHIOPU FELICIA

2.

TEMA 3. METODE ȘI FUNCȚII PREDEFINITE, CE POT FI
APLICATE ÎN LUCRUL CU TIPURILE DE DATE COMPLEXE.
• Conținut:
• Metode predefinite aplicate în lucru cu tipurile de date complexe
• Funcții predefinite aplicate în lucru cu tipurile de date complexe
• Exemple

3.

PRIN CE SE DIFERENȚIAZĂ O FUNCȚIE DE O METODĂ ȘI ÎN
CE CONSTĂ ASEMĂNAREA DINTRE ELE?
• Funcția este utilizată pentru a transmite sau returna date, în timp ce metoda operează datele într-o
clasă.
• Funcția reprezintă o funcționalitate independentă, în timp ce metoda face parte din programarea
orientată pe obiect.
• În funcții, nu este necesar să declarăm clasa, în timp ce pentru a utiliza metodele trebuie să declarăm
clasa.
• Funcția - un set de instrucțiuni care îndeplinesc o sarcină.
• Metoda - un set de instrucțiuni asociate unui obiect.

4.

METODE UTILIZATE ÎN LUCRUL CU LISTELE
• Cuvântul rezervat del este utilizat pentru a lichida unul sau mai multe elemente dintr-o colecție. Poate fi
utilizat asupra listelor și dicționarelor. Sintaxa: del list[i]

5.

METODE UTILIZATE ÎN LUCRUL CU LISTELE

6.

METODA APPEND()
• Metoda append() – adaugă un element la sfârșitul listei. Metoda va modifica lista inițială și nu va
returna nici o valoare
• Sintaxa: list.append(item)
• Drept elemente pot figura numere, șiruri de tip text, alte liste, dicționare etc.
Exemplu 1:
fruits = ['pear', 'apple', 'orange']
fruits.append('grapes')
#Updated fruits List
print('New list is: ', fruits)
Exemplu 2:
fruits = ['pear', 'apple', 'orange']
app_fruits = ['grapes', 'cherry']
fruits.append(app_fruits)
#Updated fruits List
print('New list is: ', fruits)

7.

METODA EXTEND()
• Metoda extend(iterable) – extinde o listă, adăugând elemente din argumentul iterable, specificat. Această
metodă permite reuniunea valorilor a două liste
• Sintaxa: list1.extend(list2)
fruits = ['pear', 'apple', 'orange']
new_fruits = ['grapes', 'cherry']
fruits.extend(new_fruits)
#Updated fruits List
print('New list is: ', fruits)

8.

METODA INSERT()
• Metoda insert() – inserează un element în listă, în poziția specificată. Această metodă nu va returna
nimic
• Sintaxa: list.insert(index, element)
• Exemplu:
fruits = ['pear', 'apple', 'orange']
fruits.insert(0, 'grapes')
fruits.insert(4, 'банан')
#Updated fruits List
print('New list is: ', fruits)
Adăugarea unui tuplu, ca un element al listei:
fruits = ['pear', 'apple', 'orange']
add = ('blackberries', 'grapes')
fruits.insert(len(fruits), add)
#Updated fruits List
print('New list is: ', fruits)

9.

METODA REMOVE(X)
• Metoda remove() caută elementul specificat în listă și lichidează primul element găsit, ce
corespunde celui specificat
• Dacă elementul nu este găsit în listă – se va genera o eroare
• Sintaxa: list.remove(element)
• Exemplu:
fruits = ['pear', 'apple', 'orange', 'grapes', 'apple']
fruits.remove('apple')
#Updated fruits List
print('New list is: ', fruits)

10.

METODA COUNT()
• Metoda count() returnează numărul de intrări ale elementului specificat în listă
• Sintaxa: list.count(element)
• Exemplu:
fruits = ['pear', 'apple', 'orange', 'grapes', 'apple']
print(fruits.count('apple’))
#2
print(fruits.count('plums’)) # 0

11.

METODA POP()
• Metoda pop() lichidează din listă elementul cu indicele specificat. Metoda returnează și elementul ce a fost lichidat
• Argumentul, transmis metodei pop(), nu este obligatoriu. Dacă argumentul nu este specificat, se va transmite valoarea implicită
pentru indice -1, valoare ce va returna ultimul element din listă
• Atunci când indicele, transmis prin metoda pop(), este dinafara diapazonului listei – se va genera IndexError
• Sintaxa: list.pop(index)
• Exemplu:
fruits = ['pear', 'apple', 'orange', 'grapes', 'apple']
print(fruits.pop(1))
print(fruits.pop())
#Updated fruits List
print('New list is: ', fruits)

12.

METODA REVERSE()
• Metoda reverse() reflectă în ordine inversă elementele listei specificate
• Metoda reverse() nu are parametri
• Sintaxa: list.reverse()
• Exemplu 1:
fruits = ['pear', 'apple', 'orange', 'grapes', 'apple', 'blackberries']
print(fruits)
fruits.reverse()
print(fruits)
# print(fruits.reverse()) – nu va fi funcțională
# va afisa None
Exemplu 2:
numbers = [4, 3, 5, 6, 9, 11, 2]
print(numbers)
#Reversed fruits List
print('New list is: ', numbers[::-1]) # list[start:stop:step]

13.

METODA SORT()
• Metoda sort() sortează elementele listei specificate într-o anumită ordine – crescătoare sau
descrescătoare
• Metoda sort() nu returnează nici o valoare – ea va modifica lista inițială
• Implicit, metoda sort() nu necesită parametri adiționali, însă are doi parametri opționali:
• reverse – dacă e True, lista sortată este inversată – adică sortarea elementelor se face în ordine descrescătoare
• key – este o funcție, ce poate servi drept cheie de comparare pentru sortare
• Sintaxa: list.sort(key=..., reverse=...)
• Exemplu 1:
numbers = [4, 3, 5, 6, 9, 11, 2]
print(numbers.sort()) # Va afișa None
Exemplu 2:
numbers = [4, 3, 5, 6, 9, 11, 2]
print(numbers)
numbers.sort()
print(numbers)

14.

SORTAREA ÎN ORDINE DESCRESCĂTOARE
• Parametrului reverse i se pune în corespondență valoarea True
• Exemplu:
numbers = [4, 3, 5, 6, 9, 11, 2]
print(numbers)
numbers.sort(reverse=True)
print(numbers)

15.

METODA CLEAR()
• Metoda clear() lichidează toate elementele listei
• În versiunile Python 2 sau Python 3.2 – nu va fi posibilă utilizarea acestei metode – dar va fi posibilă utilizarea
instrucțiunii del
• Metoda nu are nici un parametru
• Sintaxa: list.clear()
• Exemplu:
numbers = [4, 3, 5, 6, 9, 11, 2]
numbers.clear()
print(numbers)

16.

METODA COPY()
• Metoda copy() returnează o copie a listei specificate
• Copierea poate fi realizată și cu ajutorul operatorului de atribuire (=)
• Exemplu:
numbers = [4, 3, 5, 6, 9, 11, 2]
print(numbers)
new_numbers = numbers
print(new_numbers)
• Sintaxa metodei: new_list = list.copy()
numbers = [4, 3, 5, 6, 9, 11, 2]
print(numbers)
new_numbers = numbers.copy()
print(new_numbers)

17.

FUNCȚII APLICATE ASUPRA LISTELOR
1. Funcția len(s) – returnează numărul de elemente din listă
• Funcția len() poate fi utilizată și asupra oricărei alte consecutivități de elemente (ca de exemplu: șir
textual, tuplu) sau colecții (dicționar, mulțime…)
2. Constructorul list() va returna o listă de elemente ce pot fi modificate (în mod analogic pot fi
utilizate funcțiile dict(), set(), tuple()...)
3. Funcția range() – generează o succesiune de valori numerice, ce nu pot fi modificate și de obicei
este utilizată în cicluri. Sintaxa: range(stop) sau range(start, stop[, step])
• Exemplu: print(list(range(1,31,2))) # [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29]

18.

FUNCȚII APLICATE ASUPRA LISTELOR
Funcția max() – are 2 forme
• max(iterable, *[, key, default]) sau max(arg1, arg2, *args[, key]) – va returna valoarea maximă a elementelor din iterable
(ca de exemplu într-o listă) sau cea mai mare valoare din cele două sau mai multe argumente specificate (se ia după primul
element)
• Argumentul default specifică obiectul, ce trebuie returnat atunci când nu se specifică nici o valoare pe prima poziție. Dacă
argumentul 1 este vid și nu este prevăzută o valoare predefinită, va fi generată o eroare ValueError
• Dacă mai multe elemente au valori maxime, va fi returnată numai prima valoare găsită
• Exemplu:
fruits = ['pear', 'apple', 'orange', 'grapes', 'apple', 'blackberries']
numbers = [4, 3, 5, 6, 9, 11, 2]
print(max(numbers))
print(max(fruits))

19.

FUNCȚII APLICATE ASUPRA LISTELOR
• Funcția min() – de asemenea are două forme
• min(iterable, *[, key, default]) sau min(arg1, arg2, *args[, key]) – va returna valoarea minimă din iterable sau
elementul minim dintre două sau mai multe argumente specificate
• În rest – e ca și la funcția max()
• Exemplu:
fruits = ['pear', 'apple', 'orange', 'grapes', 'apple', 'blackberries']
numbers1 = [4, 3, 5, 6, 9, 11, 2, 77]
numbers2 = [7, 3, 9, 66, 8, 11, 1]
print(min(numbers1, numbers2))
print(min(fruits))

20.

FUNCȚIA SUM()
• Funcția sum() sumează elementele unei consecutivități și returnează suma lor
• Sintaxa: sum(iterable, start)
• iterable – este consecutivitatea de elemente (listă, tuplu etc.), pentru care trebuie calculată suma valorilor. Ca regulă
elementele consecutivității trebuie sa fie numere
• start (nu este obligatoriu) – această valoare se adaugă la suma elementelor. Valoarea implicită pentru parametrul start este
0 (atunci când nu este specificată)
• Exemplu:
numbers = [4, 3, 5, 6, 9, 11, 2, 77]
print(sum(numbers))
print(sum(numbers, 20))

21.

FUNCȚIA MAP()
• Funcția map() aplicată fiecărui element a unei consecutivități (listă, tuplu etc.) –
va returna o listă cu rezultate
• Sintaxa: map(function, iterable, ...)
• function - map() îi va transmite acestei funcții fiecare element din
consecutivitate și va returna o listă cu rezultate. Valoarea returnată de map()
(obiectul-hartă) poate apoi fi transmis funcției list() (pentru generarea unei
liste cu rezultate), set() (pentru generarea unei mulțimi cu rezultate) și altele
• iterable – este succesiunea elementelor utilizată în funcția map()
• Funcției map() îi pot fi specificate și câteva consecutivități în argument
Exemplu:
def x2(x):
return x**2
numbers = (4, 3, 5, 6, 9, 11, 2, 77)
result = map(x2, numbers)
print(result)
transform = tuple(result)
print(transform)

22.

FUNCȚIA MAP() ȘI LAMBDA–FUNCȚIILE
• Deoarece map() primește în argument o funcție, de cele mai multe ori sunt utilizate lambda-funcțiile
în lucrul cu map()
• Exemplul anterior, cu lambda-funcție:
numbers = (4, 3, 5, 6, 9, 11, 2, 77)
result = map(lambda x: x**2, numbers)
print(result)
transform = tuple(result)
print(transform)

23.

CÂTEVA METODE UTILIZATE ÎN LUCRUL CU MULȚIMILE - DIFFERENCE()
• Metoda difference() returnează diferența dintre elementele a două mulțimi. Poate fi aplicată doar asupra mulțimilor!!!
• Sintaxa: A.difference(B)
• unde A și B – sunt două mulțimi și sintaxa de mai sus este echivalentă cu A-B, din matematică
• Exemplu:
numbers1 = {4, 3, 5, 6, 9, 11, 2, 77}
numbers2 = {6, 8, 10, 2, 4}
diff12 = numbers1.difference(numbers2)
diff21 = numbers2.difference(numbers1)
print(diff12)
print(diff21)

24.

CÂTEVA METODE UTILIZATE ÎN LUCRUL CU MULȚIMILE INTERSECTION()
• Metoda intersection() – returnează o nouă mulțime cu elemente, care sunt comune în toate mulțimile
menționate
• Sintaxa: A.intersection(*other_sets)
• Exemplu:
numbers1 = {4, 3, 5, 6, 9, 11, 2, 77}
numbers2 = {6, 8, 10, 2, 4}
inters12 = numbers1.intersection(numbers2)
print(inters12)

25.

METODE PENTRU DICȚIONARE - KEYS()
• Metoda get() – am explicat-o și am aplicat-o la lecția trecută
• Metoda keys() – returnează obiectul, care prezintă lista tuturor cheilor din dicționar
• Sintaxa: dict.keys()
• Metoda nu dispune de parametri
• Exemplu:
dict = {'name': 'Jhon', 'ages': 55, 'nmbr_children': 3}
print(dict.keys())

26.

METODE PENTRU DICȚIONARE - POPITEM()
• Metoda popitem() – șterge și returnează o pereche aliatoare (cheie-valoare) din elementele unui
dicționar
• Sintaxa: dict.popitem()
• Metoda nu are nici un parametru
• Returnează în mod aliator perechea cheie-valoare din dicționar
• Șterge un element la întâmplare (același pe care îl returnează) din dicționar
• Exemplu:
dict = {'name': 'Jhon', 'ages': 55, 'nmbr_children': 3}
print(dict.popitem())
print(dict)

27.

METODE PENTRU DICȚIONARE - POP()
• Metoda pop() - șterge și returnează un element cu cheia specificată, din dicționar
• Sintaxa: dictionary.pop(key[, default])
• key – cheia ce trebuie găsită și lichidată
• default – valoarea, care trebuie returnată în cazul în care cheia nu este găsită în dicționar
• Dacă cheia este găsită – se lichidează elementul din dicționar. Atunci când cheia nu este găsită – se
recomandă specificarea valorii în cel de-al doilea argument (valoarea implicită). Dar dacă cheia nu este
găsită și nu este specificată valoarea implicită în cel de-al doilea argument – se va genera excepția KeyError
• Exemplu 1:
dict = {'name': 'Jhon', 'ages': 55, 'nmbr_children': 3}
print(dict.pop('name'))
print(dict)
Exemplu 2:
dict = {'name': 'Jhon', 'ages': 55, 'nmbr_children': 3}
print(dict.pop('names', 'No key!'))
print(dict)

28.

METODE PENTRU DICȚIONARE - VALUES()
• Metoda values() – returnează obiectul, care prezintă lista tuturor valorilor din dicționar
• Sintaxa: dictionary.values()
• Metoda nu are nici un parametru
• Exemplu:
dict = {'name': 'Jhon', 'ages': 55, 'nmbr_children': 3}
print(dict.values())
print(dict)

29.

METODE PENTRU DICȚIONARE - UPDATE()
• Metoda update() – reînnoiește dicționarul cu elementele
preluate din alte dicționare sau din perechi cheie-valoare.
Metoda update() poate avea în argument un dicționar sau un
obiect-colecție, ce are drept elemente perechi cheie-valoare (ca
regulă tupluri)
• Metoda update() adaugă elemente în dicționar, atunci când
cheia lipsește din dicționar. Iar atunci când cheia este în dicționar
– metoda va reînnoi valoarea corespunzătoare cheii
• Sintaxa: dict.update([other])
• Dacă metoda este apelată fără valori pentru parametri – dicționarul
rămâne neschimbat
Exemplu:
dict = {'name': 'Jhon', 'ages': 55, 'nmbr_children': 3}
d1 = {'name': 'Hellen'}
dict.update(d1)
d2 = {'work': 'programmer'}
dict.update(d2)
dict.update(employer = 'Microsoft', phone =
'089776655')
print(dict)

30.

FUNCȚII ȘI METODE PENTRU LUCRUL CU TIPUL DE DATE - TUPLE
Există două metode care pot fi folosite pentru tipul de date tuple și anume .count() și .index().
• Metoda count - întoarce numărul de apariții ale obiectului trimis ca parametru în cadrul tuplului.
• Metoda index - întoarce prima poziție (indexul) a obiectului în cadrul tuplului.
tuplu = (1,2,3,4,5,2,3)
print("3 apare de", tuplu.count(3), "ori.")
print("Indexul lui 5 este", tuplu.index(5))
3 apare de 2 ori.
Indexul lui 5 este 4

31.

FUNCȚII ȘI METODE PENTRU LUCRUL CU TIPUL DE DATE - TUPLE
• sorted() – returnează o listă sortată a elementelor dintr-un tuplu
tuplu_exemplu = (5, 2, 8, 1, 3)
tuplu_sortat = tuple(sorted(tuplu_exemplu))
print(tuplu_sortat) # Output: (1, 2, 3, 5, 8)
• slice[:] - permite accesul la o secțiune specifică a unui tuplu prin specificarea unui interval de indecși
tuplu_exemplu = ('a', 'b', 'c', 'd', 'e')
sub_tuplu = tuplu_exemplu[1:4]
print(sub_tuplu) # Output: ('b', 'c', 'd’)
• concatinarea tuplurilor – unirea a două tupluri
tuplu1 = (1, 2, 3)
tuplu2 = ('a', 'b', 'c')
rezultat = tuplu1 + tuplu2
print(rezultat) #Output: (1, 2, 3, 'a', 'b', 'c')

32.

EXEMPLE:

33.

EXEMPLE:

34.

EXEMPLE:
* ‘join()’: Concatenează elementele unei liste într-un șir folosind un separator.

35.

EXEMPLE:
# Crearea iterativă a unei liste de numere întregi de la 1 la 5
lista_simpla = []
for i in range(1, 6):
lista_simpla.append(i)
print(lista_simpla)
#[1, 2, 3, 4, 5]
# Crearea iterativă a unui tuplu simplu
tuplu_simplu = tuple(x for x in range(1, 6))
print(tuplu_simplu)
#(1, 2, 3, 4, 5)
# Inițializarea unui set gol
setul_meu = set()
# Adăugarea iterativă a elementelor în set
for i in range(1, 6):
setul_meu.add(i)
print(setul_meu)
#{1, 2, 3, 4, 5}

36.

EXEMPLE:
# Inițializarea unui dicționar gol
dictionar_simplu = {}
# Adăugarea de perechi cheie-valoare în mod iterativ
for i in range(1, 6):
cheie = f'cheie{i}'
valoare = i * 2
dictionar_simplu[cheie] = valoare
print(dictionar_simplu)
#{'cheie1': 2, 'cheie2': 4, 'cheie3': 6, 'cheie4': 8, 'cheie5':
10}
tuplu_numere = tuple(range(3, 10, 3))
print(tuplu_numere)
#(3, 6, 9)
lista_numere = list(range(1, 6))
print(lista_numere)
#[1, 2, 3, 4, 5]

37.

EXEMPLE:
# Crearea unei liste
lista_numere = [1, 2, 3, 4, 5]
# Accesarea elementelor listei
primul_element = lista_numere[0]
ultimul_element = lista_numere[-1]
# Adăugarea unui element la sfârșitul listei
lista_numere.append(6)
# Slicing
sublist = lista_numere[2:5]
print("Lista de numere:", lista_numere)
print("Primul element:", primul_element)
print("Ultimul element:", ultimul_element)
print("Sublista:", sublist)
# Crearea unui tuplu
tuplu_culori = ('rosu', 'verde', 'albastru')
# Accesarea elementelor tuplului
prima_culoare = tuplu_culori[0]
# Concatenarea a două tupluri
tuplu_noi_culori = tuplu_culori + ('galben', 'portocaliu')
print("Tuplul de culori:", tuplu_culori)
print("Prima culoare:", prima_culoare)
print("Tuplu nou de culori:", tuplu_noi_culori)

38.

EXEMPLE:
# Crearea unui set
set_vocale = {'a', 'e', 'i', 'o', 'u'}
# Crearea unui dicționar
dictionar_student = {'nume': 'Ana', 'varsta': 20, 'nota': 9.5}
# Adăugarea unui element în set
set_vocale.add('y')
# Accesarea valorilor prin chei
nume_student = dictionar_student['nume']
# Verificarea existenței unui element în set
exista_i = 'i' in set_vocale
# Adăugarea unei noi perechi cheie-valoare
dictionar_student['gen'] = 'feminin'
print("Setul vocal:", set_vocale)
print("'i' există în set:", exista_i)
print("Dicționarul student:", dictionar_student)
print("Numele studentului:", nume_student)

39.

EXEMPLE:
# Crearea unei liste
lista = [1, 2, 3, 4, 5]
# Adăugarea unui element la sfârșit
lista.append(6)
# Extinderea listei cu alte elemente
lista.extend([7, 8, 9])
# Slicing pentru a extrage o sub-listă
sublista = lista[2:5]
print("Lista:", lista)
print("Sublista:", sublista)
# Crearea unui tuplu
tuplu = (10, 20, 30, 40, 50)
# Accesarea unui element
element_tuplu = tuplu[2]
# Concatenarea a două tupluri
tuplu_nou = tuplu + (60, 70)
print("Tuplu:", tuplu)
print("Elementul din tuplu:", element_tuplu)
print("Tuplu nou:", tuplu_nou)

40.

EXEMPLE:
# Crearea unui set
set1 = {1, 2, 3, 4, 5}
# Crearea unui dicționar
dictionar = {'nume': 'John', 'varsta': 25, 'oras': 'București'}
# Adăugarea unui element
set1.add(6)
# Accesarea valorii prin cheie
varsta_person = dictionar['varsta']
# Eliminarea unui element
set1.discard(3)
# Adăugarea unei noi perechi cheie-valoare
dictionar['ocupatie'] = 'programator'
# Intersecția cu un alt set
set2 = {4, 5, 6}
intersectie = set1.intersection(set2)
# Eliminarea unei chei
dictionar.pop('oras')
print("Set1:", set1)
print("Intersecția cu Set2:", intersectie)
print("Dicționar:", dictionar)
print("Vârsta persoanei:", varsta_person)
English     Русский Rules