Професионална програма
Loading...
+ Нов въпрос
zh.yordanova avatar zh.yordanova 5 Точки

10. *SoftUni Exam Results

Здравейте, колеги. Имам нужда от помощ. Подходих малко усложнено към задачата, създавайки речник в речника. Проблемът е, че не успявам да намеря начин как да направя последната си сортировка, която трябва да преброи, колко пъти всеки език е бил подаден. Ще съм много благодарна ако ми помогнете да намеря правилното решение. 

Условие на задачата: https://pastebin.com/QbBYYxPJ

Линк към Judge: https://judge.softuni.bg/Contests/Compete/Index/1737#9

Моето решение: https://pastebin.com/iVVD7AxZ

 

Много благодаря на всеки, които отдели от времето си и погледне кода ми.

Тагове:
0
Python Fundamentals
MartinBG avatar MartinBG 3077 Точки

Структурата, която използвате (речник в речника) е подходяща за първата част от задачата, но за втораа (сорирането на изпити по брой събмити) не е приложима, защото не пазите броя събмити (един човек може да има повече от един събмит за даден изпит) към всеки изпит, а само най-високия резултат за всеки човек.

Най-лесно ще е просто да добавите още един речник, в който да пазите изпититие и броя събмити към всеки.

Пишете, ако не успеете да го направите и по-късно ше кача решение.

 

ПП

Грешката, която ви дава е заради знакa - пред x[1]['language'] -  той може да се използва за обръщане на сортировката на числа, но не и за стрингове или други структури. За тези цели има параметър reverse=reverse към sort

0
22/11/2020 15:16:35
zh.yordanova avatar zh.yordanova 5 Точки

Здравейте MartinBG. Благодаря, че отново погледнахте кода ми и отделихте от свободното си време за да отговорите на въпросът ми. Принципно видях решение на задачата, която създава два отделни речника, единият от които е 'language', и пази подадения език като key и самият код автоматично пресмята, колко пъти той се появява като value.

Просто ми беше интересно дали има начин и при моето решение, което да пресмята и сортира. 

Премахна знака - както ми казахте, но видях че кода минава през целия речник, заедно с вложения речник и не може или аз поне не успях да го накарам да пресметне събмитите.

0
MartinBG avatar MartinBG 3077 Точки

@zh.yordanova

Както писах и по-горе, няма как да се извлече броя събмити към всеки език от речника, тъй като той не съдържа тази информация.

Може да добавите нов ключ във вложения речник, който да пази събмитите на човека за езика и да го използвате за втората част на задачата, но - според мен, това е ненужно усложнение. От друга страна, изглежда като добро упражнение за работа с вложени речници ;)

0