Sortowanie „słownika” po kluczach i po wartościach
Treść zadania
Wczytaj n par klucz wartość do słownika.
a) Wypisz pary posortowane rosnąco według kluczy.
b) Wypisz pary posortowane rosnąco według wartości; pary o równych wartościach uporządkuj rosnąco według kluczy.
Dane wejściowe
- 1. linia:
n - następnie
nlinii:klucz wartość— klucz to słowo z małych liter (klucze są różne), wartość to liczba całkowita
Dane wyjściowe
- 1. linia: pary dla a)
- 2. linia: pary dla b)
Każdą parę wypisz jako klucz:wartość (bez spacji wokół dwukropka), a pary oddziel pojedynczą spacją.
Ograniczenia
1 ≤ n ≤ 50
Uwagi
- Klucze porównujemy jak napisy (alfabetycznie), np.
abjest przedb. sorted(slownik.items())sortuje pary według kluczy — pary (krotki) porównywane są najpierw po pierwszym elemencie.- Aby sortować według czegoś innego, przekaż w parametrze
keynazwę funkcji (bez nawiasów).sortedwywoła tę funkcję dla każdego elementu i ułoży elementy rosnąco według zwróconych wartości:
```python
def dlugosc_napisu(napis):
return len(napis)
print(sorted(["kot", "żyrafa", "pies"], key=dlugosc_napisu)) # ['kot', 'pies', 'żyrafa']` - Funkcja klucza może zwracać krotkę. Krotki porównywane są element po elemencie, więc dla pary
(klucz, wartość)zwrócenie(wartość, klucz)sortuje po wartości, a przy równych wartościach — po kluczu.
Przykład
4 c 3 x 5 a -2 b 4
a:-2 b:4 c:3 x:5 a:-2 c:3 b:4 x:5
Zasady obowiązujące w rozdziale 17
Zadania w tym rozdziale ćwiczą pracę ze słownikami (dict): tworzenie, dodawanie i usuwanie par, zliczanie wystąpień oraz grupowanie danych według klucza.
Każde zadanie (oraz każdy podpunkt) jest osobnym, niezależnym programem: czyta standardowe wejście (stdin) i wypisuje wynik na standardowe wyjście (stdout).
Konwencje wspólne:
- Dane wczytuj dokładnie w kolejności podanej w sekcji Wejście; jeśli w jednej linii jest kilka wartości — rozbij ją po spacjach.
- Jeśli wynikiem jest słownik, wypisz go tak, jak robi to
print(slownik)w Pythonie:{klucz: wartość, klucz: wartość}— pary oddzielone przecinkiem i spacją, po dwukropku spacja, klucze i wartości napisowe w apostrofach (np.{'ala': 2, 'ma': 1}), liczby bez apostrofów (np.{1: 1, 2: 4}), pusty słownik to{}. - Kolejność par w wypisanym słowniku to kolejność, w jakiej klucze były do niego dodawane (tak zachowuje się słownik w Pythonie).
- Program nie wypisuje komunikatów typu „Podaj liczbę:”.
Zadanie pochodzi z otwartego zbioru Nauka-Programowania (z rozwiązaniami wzorcowymi). Zgłoś błąd w treści lub testach.
Przywrócono Twój zapisany kod.
Python uruchomi się w przeglądarce przy pierwszym teście.
Kod zapisuje się automatycznie w tej przeglądarce. Tab wstawia wcięcie; aby opuścić edytor klawiaturą, naciśnij Esc, a potem Tab.
Testy
Program dostaje „Wejście” przez input() i musi wypisać „Oczekiwane wyjście”. Liczby porównywane są z tolerancją 0,01, a tekst podany w input("…") nie jest sprawdzany.
Test 1
Nie uruchomiono3 b 2 a 3 c 1
a:3 b:2 c:1 c:1 b:2 a:3
Test 2
Nie uruchomiono3 c 10 b 5 a 7
a:7 b:5 c:10 b:5 a:7 c:10
Test 3
Nie uruchomiono1 z 0
z:0 z:0
Test 4
Nie uruchomiono4 d 1 b 1 c 0 a 1
a:1 b:1 c:0 d:1 c:0 a:1 b:1 d:1
Test 5
Nie uruchomiono3 b 2 ab 5 ba -2
ab:5 b:2 ba:-2 ba:-2 b:2 ab:5
Test 6
Nie uruchomiono5 kiwi 30 banan 12 jablko 30 gruszka -4 ananas 12
ananas:12 banan:12 gruszka:-4 jablko:30 kiwi:30 gruszka:-4 ananas:12 banan:12 jablko:30 kiwi:30