- problema = 5
- # def promovat(ls,mini):
- # for student in ls: #read only
- # if 0 in student[2] or sum(student[2])<mini:
- # student+=(False,)
- # else:
- # student += (True,)
- def promovat(ls,mini):
- for i in range(len(ls)): #read only
- if 0 in ls[i][2] or sum(ls[i][2]) < mini:
- ls[i] += (False,)
- else:
- ls[i] += (True,)
- ls = [("Popescu Ion", 135, (5, 7, 3, 0, 4)),
- ("Popa Anca", 131, (5, 7, 3)),
- ("Mihai Ana", 135, (7, 3, 3, 2, 4)),
- ("Mihai Ana", 132, (7, 0, 3, 0)),
- ("Ionescu Clara", 131, (5, 0, 3)),
- ("Adam Iulia", 135, (5, 5, 5, 3, 3))]
- promovat(ls, 15)
- #sortari:
- #crescător după grupă și în fiecare grupă în ordine alfabetică
- def sortare1(t):
- return t[1],t[0]
- # ls.sort(key=sortare1)
- #
- # print(*ls,sep='\n')
- #sortare2:
- #întâi cei promovați, apoi cei nepromovați
- #și în fiecare categorie în ordine alfabetică
- def sortare2(t):
- return -t[3], t[0] #-t[3] e ca sa putem pune in ordine descrescatoare
- #(True mai intai)
- # ls.sort(key=sortare2)
- #
- # print(*ls,sep='\n')
- #sortare3
- #descrescător după suma creditelor,
- # iar în cazul unor sume egale în ordinea crescătoare a grupei
- # și în ordine alfabetică în cadrul grupei
- def sortare3(t):
- return -sum(t[2]), t[1], t[0]
- # ls.sort(key=sortare3)
- # print(*ls,sep='\n')
- #sortare4
- #în ordinea crescătoare a grupelor,
- # în cadrul fiecărei grupe mai întâi studenții promovați,
- # iar apoi cei nepromovați, în fiecare categorie (promovat/nepromovat) în
- #ordinea descrescătoare a sumei creditelor și, în cazul unor sume egale,
- # în ordine alfabetică
- def sortare4(t):
- return t[1], -t[3], -sum(t[2]),t[0]
- ls.sort(key=sortare4)
- print(*ls,sep='\n')