hodnotenia = [ {'meno':'Janko Hrasko', 'body':10}, {'meno':'Adam Mrkvicka', 'body': 8}, {'meno':'Pavol Safarik', 'body': 9}] #nacitanie zo vstupu (pocet;2 riadky na kazde hodnotenie-meno a body) n = int(input()) hodnotenia = [] for _ in range(n): hodnotenia.append({'meno':input(), 'body':int(input())}) print(hodnotenia) #spocitame pocetnost pocty = {} #prazdny slovnik / asociativne pole (kluc-hodnota) for h in hodnotenia: hodn = h['body'] #usporiadavame podla body if hodn in pocty: #hodnota uz bola pocty[hodn] += 1 #pripocitame dalsi vyskut hodnoty else: #prvy vyskyt hodnoty, pridaj do slovnika pocty[hodn] = 1 print(pocty) #prefixove sucty, spocitaj pocet prvkov <= hodn total = 0 for hodn in sorted(pocty.keys()): total, pocty[hodn] = total+pocty[hodn], total print(pocty) #zapisuj do vysledneho pola podla pozicie vysl = [None for _ in range(len(hodnotenia))] #prazdne pole (n x None) for h in hodnotenia: vysl[pocty[h['body']]] = h pocty[h['body']] += 1 print(vysl) #vypis od najvacsieho for h in reversed(vysl): print(h['body'], ' - ', h['meno'])
6 Janko Hrasko 10 Adam Mrkvicka 7 Rasto KB 8 Pavol Safarik 5 Jozef Safarik 11 RKB 7
[{'body': 10, 'meno': 'Janko Hrasko'}, {'body': 7, 'meno': 'Adam Mrkvicka'}, {'body': 8, 'meno': 'Rasto KB'}, {'body': 5, 'meno': 'Pavol Safarik'}, {'body': 11, 'meno': 'Jozef Safarik'}, {'body': 7, 'meno': 'RKB'}] {8: 1, 10: 1, 11: 1, 5: 1, 7: 2} {8: 3, 10: 4, 11: 5, 5: 0, 7: 1} [{'body': 5, 'meno': 'Pavol Safarik'}, {'body': 7, 'meno': 'Adam Mrkvicka'}, {'body': 7, 'meno': 'RKB'}, {'body': 8, 'meno': 'Rasto KB'}, {'body': 10, 'meno': 'Janko Hrasko'}, {'body': 11, 'meno': 'Jozef Safarik'}] 11 - Jozef Safarik 10 - Janko Hrasko 8 - Rasto KB 7 - RKB 7 - Adam Mrkvicka 5 - Pavol Safarik