Výpočet mimo cyklus
Do tvé session byl načten seznam celých čísel generations, který reprezentuje generaci každého Pokémona. Chceš zjistit počty výskytů jednotlivých generací a určit, jaké procento z celkového počtu prvků každá generace tvoří.
K tomuto účelu byl napsán následující cyklus:
for gen,count in gen_counts.items():
total_count = len(generations)
gen_percent = round(count / total_count * 100, 2)
print(
'generation {}: count = {:3} percentage = {}'
.format(gen, count, gen_percent)
)
Zefektivni tento cyklus tak, že přesunete jednorázový výpočet mimo jeho tělo.
Toto cvičení je součástí kurzu
Psaní efektivního kódu v Pythonu
Pokyny k cvičení
- Importuj
Counterz modulucollections. - Pomocí
Counter()spočítej výskyty jednotlivých generací ze seznamugenerations. Výsledek ulož jakogen_counts. - Napiš lepší cyklus for, který přesune jednorázový výpočet mimo cyklus (nad něj). Použij přesně stejnou syntaxi jako původní cyklus (stačí zkopírovat jednorázový výpočet nad cyklus).
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# Import Counter
____
# Collect the count of each generation
gen_counts = ____
# Improve for loop by moving one calculation above the loop
total_count = ____
for gen,count in gen_counts.items():
gen_percent = round(count / total_count * 100, 2)
print('generation {}: count = {:3} percentage = {}'
.format(gen, count, gen_percent))