Masa według kategorii
Planiści załadunku nie potrzebują każdej pozycji: muszą wiedzieć, ile waży każdy rodzaj ładunku, bo żywność, podtrzymanie życia i części zapasowe trafiają na różne regały z różnymi limitami masy.
Zsumuj manifest według kategorii, a potem uszereguj kategorie według masy.
Ukończ etap 1, aby odblokować ten etap.
Zsumuj masę każdej kategorii w słowniku o nazwie totals, a potem wypisz każdą kategorię z jej sumą, w kolejności pierwszego pojawienia się kategorii:
podtrzymanie życia: 49.8 kg części zapasowe: 2.4 kg żywność: 67.0 kg załoga: 3.4 kg
Zacznij od totals = {}. Dla każdego rekordu totals.get(category, 0) daje dotychczasową sumę albo 0 dla kategorii jeszcze niewidzianej; dodaj masę rekordu i zapisz z powrotem pod kategorią.
Ukończ etap 1, aby odblokować ten etap.
Wypisz kategorie od najcięższej do najlżejszej, każdą z jej udziałem w całym ładunku, zaokrąglonym do pełnego procenta:
żywność: 67.0 kg (55%) podtrzymanie życia: 49.8 kg (41%) załoga: 3.4 kg (3%) części zapasowe: 2.4 kg (2%)
sorted(totals, key=totals.get, reverse=True) daje kategorie uporządkowane według ich sum. sum(totals.values()) to cały ładunek.
Podpowiedzi
Modyfikowanie słowników
# Modyfikowanie słowników
planet = {"name": "Mars", "moons": 2}
# Dodawanie nowego klucza
planet["diameter"] = 6779
print("Po dodaniu:", planet)
# Zmiana wartości
planet["moons"] = 3 # Pomyłka - poprawmy
planet["moons"] = 2
print("Po zmianie:", planet)
# Usuwanie elementu
del planet["diameter"]
print("Po del:", planet)
# pop() - usuwa i zwraca wartość
moons = planet.pop("moons")
print("Usunięte księżyce:", moons)
print("Pozostało:", planet)
# update() - dodaje wiele elementów
planet.update({"type": "skalista", "rings": False})
print("Po update:", planet)
Oddziel argumenty przecinkami. Każde uruchomienie przekazuje je jako sys.argv[1:].