# use python 3 !!!
from collections import Counter
pupils = {
'unique_tickets_1': {'first_name': 'FName_1', 'last_name': 'LName_1', 'name_class': {'year_learn': 2005, 'litera': 'A'}},
'unique_tickets_2': {'first_name': 'FName_2', 'last_name': 'LName_2', 'name_class': {'year_learn': 1999, 'litera': 'A'}},
'unique_tickets_3': {'first_name': 'FName_3', 'last_name': 'LName_3', 'name_class': {'year_learn': 2000, 'litera': 'A'}},
'unique_tickets_4': {'first_name': 'FName_4', 'last_name': 'LName_4', 'name_class': {'year_learn': 2001, 'litera': 'A'}},
'unique_tickets_5': {'first_name': 'FName_5', 'last_name': 'LName_5', 'name_class': {'year_learn': 1999, 'litera': 'A'}},
'unique_tickets_6': {'first_name': 'FName_6', 'last_name': 'LName_6', 'name_class': {'year_learn': 1999, 'litera': 'A'}},
'unique_tickets_7': {'first_name': 'FName_7', 'last_name': 'LName_7', 'name_class': {'year_learn': 1999, 'litera': 'A'}},
'unique_tickets_8': {'first_name': 'FName_8', 'last_name': 'LName_8', 'name_class': {'year_learn': 1999, 'litera': 'A'}},
'unique_tickets_9': {'first_name': 'FName_9', 'last_name': 'LName_9', 'name_class': {'year_learn': 1987, 'litera': 'A'}},
'unique_tickets_10': {'first_name': 'FName_10', 'last_name': 'LName_10', 'name_class': {'year_learn': 1999, 'litera': 'A'}},
'unique_tickets_11': {'first_name': 'FName_11', 'last_name': 'LName_10', 'name_class': {'year_learn': 1999, 'litera': 'A'}},
'unique_tickets_12': {'first_name': 'FName_12', 'last_name': 'LName_10', 'name_class': {'year_learn': 1999, 'litera': 'A'}},
'unique_tickets_13': {'first_name': 'FName_13', 'last_name': 'LName_13', 'name_class': {'year_learn': 1999, 'litera': 'A'}},
'unique_tickets_14': {'first_name': 'FName_14', 'last_name': 'LName_14', 'name_class': {'year_learn': 1999, 'litera': 'A'}},
'unique_tickets_15': {'first_name': 'FName_15', 'last_name': 'LName_15', 'name_class': {'year_learn': 1999, 'litera': 'A'}},
'unique_tickets_16': {'first_name': 'FName_16', 'last_name': 'LName_16', 'name_class': {'year_learn': 1999, 'litera': 'A'}},
'unique_tickets_17': {'first_name': 'FName_17', 'last_name': 'LName_17', 'name_class': {'year_learn': 1999, 'litera': 'A'}},
'unique_tickets_18': {'first_name': 'FName_18', 'last_name': 'LName_18', 'name_class': {'year_learn': 1999, 'litera': 'A'}},
'unique_tickets_19': {'first_name': 'FName_19', 'last_name': 'LName_19', 'name_class': {'year_learn': 1999, 'litera': 'A'}},
'unique_tickets_20': {'first_name': 'FName_20', 'last_name': 'LName_20', 'name_class': {'year_learn': 1999, 'litera': 'A'}},
'unique_tickets_21': {'first_name': 'FName_21', 'last_name': 'LName_21', 'name_class': {'year_learn': 1999, 'litera': 'A'}},
'unique_tickets_22': {'first_name': 'FName_22', 'last_name': 'LName_22', 'name_class': {'year_learn': 1999, 'litera': 'A'}},
'unique_tickets_23': {'first_name': 'FName_23', 'last_name': 'LName_23', 'name_class': {'year_learn': 1999, 'litera': 'A'}},
'unique_tickets_24': {'first_name': 'FName_24', 'last_name': 'LName_24', 'name_class': {'year_learn': 1999, 'litera': 'A'}},
'unique_tickets_25': {'first_name': 'FName_25', 'last_name': 'LName_25', 'name_class': {'year_learn': 1999, 'litera': 'A'}},
'unique_tickets_26': {'first_name': 'FName_26', 'last_name': 'LName_25', 'name_class': {'year_learn': 1999, 'litera': 'B'}},
'unique_tickets_27': {'first_name': 'FName_27', 'last_name': 'LName_25', 'name_class': {'year_learn': 1999, 'litera': 'A'}},
'unique_tickets_28': {'first_name': 'FName_28', 'last_name': 'LName_28', 'name_class': {'year_learn': 1999, 'litera': 'A'}},
'unique_tickets_29': {'first_name': 'FName_29', 'last_name': 'LName_29', 'name_class': {'year_learn': 1999, 'litera': 'A'}},
'unique_tickets_30': {'first_name': 'FName_30', 'last_name': 'LName_30', 'name_class': {'year_learn': 1999, 'litera': 'A'}},
'unique_tickets_31': {'first_name': 'FName_31', 'last_name': 'LName_31', 'name_class': {'year_learn': 1999, 'litera': 'A'}},
'unique_tickets_32': {'first_name': 'FName_32', 'last_name': 'LName_32', 'name_class': {'year_learn': 1999, 'litera': 'A'}},
'unique_tickets_33': {'first_name': 'FName_33', 'last_name': 'LName_33', 'name_class': {'year_learn': 1996, 'litera': 'A'}},
'unique_tickets_34': {'first_name': 'FName_34', 'last_name': 'LName_34', 'name_class': {'year_learn': 1999, 'litera': 'A'}},
'unique_tickets_35': {'first_name': 'FName_35', 'last_name': 'LName_35', 'name_class': {'year_learn': 1986, 'litera': 'A'}},
'unique_tickets_36': {'first_name': 'FName_36', 'last_name': 'LName_36', 'name_class': {'year_learn': 1999, 'litera': 'A'}},
'unique_tickets_37': {'first_name': 'FName_37', 'last_name': 'LName_37', 'name_class': {'year_learn': 1988, 'litera': 'A'}},
'unique_tickets_38': {'first_name': 'FName_38', 'last_name': 'LName_38', 'name_class': {'year_learn': 1999, 'litera': 'A'}},
'unique_tickets_39': {'first_name': 'FName_39', 'last_name': 'LName_39', 'name_class': {'year_learn': 2000, 'litera': 'A'}},
'unique_tickets_40': {'first_name': 'FName_40', 'last_name': 'LName_40', 'name_class': {'year_learn': 2000, 'litera': 'A'}}}
print("1) визначити. чи є в школі учні з однаковим прізвищем;")
tmp = []
for key, value in pupils.items():
tmp.append(value.get("last_name", ''))
rez = set([x for x in tmp if tmp.count(x) > 1])
if rez:
print("Результат: в школі учні з однаковим прізвищем: ", rez)
else:
print("Результат: в школі учні з однаковим прізвищем: немає")
print("2) визначини, чи є учні з однаковим прізвищем в якихось паралельних класах;")
tmp_lst = []
for k, v in pupils.items():
tmp_lst.append([v.get('last_name'), v.get('name_class').get('year_learn'), v.get('name_class').get('litera')])
tmp_tmp = []
for el in tmp_lst:
tmp_tmp.append(el[0])
rez1 = list(set([x for x in tmp_tmp if tmp_tmp.count(x) > 1]))
year = []
alpha_class = []
if rez1:
for i in tmp_lst:
for j in rez1:
if j == i[0]:
year.append(i[1])
alpha_class.append(i[2])
for i in tmp_lst:
for j, k, v in zip(rez1, year, alpha_class):
if j == i[0]:
if i[1] == k and i[2] != v:
print(i)
else:
print("Результат : 2) визначини, чи є учні з однаковим прізвищем в якихось паралельних класах: немає")
print("3) визначити, чи є учні з однаковим прізвищем у якомусь класі;")
tmp_lst = []
for k, v in pupils.items():
tmp_lst.append([v.get('last_name'), v.get('name_class').get('year_learn'), v.get('name_class').get('litera')])
tmp_tmp = []
for el in tmp_lst:
tmp_tmp.append(el[0])
rez1 = list(set([x for x in tmp_tmp if tmp_tmp.count(x) > 1]))
year = []
alpha_class = []
if rez1:
for i in tmp_lst:
for j in rez1:
if j == i[0]:
year.append(i[1])
alpha_class.append(i[2])
for i in tmp_lst:
for j, k, v in zip(rez1, year, alpha_class):
if j == i[0]:
if i[1] == k:
print(i)
else:
print("Результат : 3) визначити, чи є учні з однаковим прізвищем у якомусь класі: немає")
print("4) визначити, в яких класах нараховується більше ніж 35 учнів;")
tmp_4 = []
for k, v in pupils.items():
el = v.get("name_class").get("year_learn")
tmp_4.append(el)
c = Counter(tmp_4)
for k, v in c.items():
print("V klasi", k, "navcaetsa", v, "ychniv")
if v > 35:
print("Klas", k, "de e bilshe nish 35 ychniv")
print("5)отримати список учнів даного класу за зразками:")
print("a) прізвище ім'я")
dict_temp = {}
for item in pupils.items():
first_name = item[1].get('first_name')
last_name = item[1].get('last_name')
name_class = item[1].get('name_class')
year_learn = name_class.get('year_learn')
litera = name_class.get('litera')
ldata = f'{year_learn},{litera}'
if not dict_temp.get(ldata, ''):
dict_temp[ldata] = [[first_name, last_name]]
else:
va_temp = dict_temp[ldata]
va_temp.append([first_name, last_name])
dict_temp[ldata] = va_temp
print("Результат:")
for k, v in dict_temp.items():
print("Клас:", k, "Учні:", v)