Porównanie dwóch słowników z listami (kolejność list bez znaczenia)

Zadanie 12 z 15 · rozdział 17Trudność: 2 z 3dictporównanielist

Treść zadania

Wczytaj dwa słowniki, w których kluczami są słowa, a wartościami listy liczb całkowitych. Sprawdź, czy słowniki są identyczne, przy czym kolejność liczb w listach nie ma znaczenia: oba słowniki muszą mieć ten sam zbiór kluczy, a pod każdym kluczem te same liczby, występujące tyle samo razy.

Dane wejściowe

  • 1. linia: n — liczba kluczy pierwszego słownika
  • następnie n linii: klucz v1 v2 v3 … (co najmniej jedna liczba)
  • następnie linia z m — liczbą kluczy drugiego słownika
  • następnie m linii: klucz v1 v2 v3 …

W obrębie jednego słownika klucze są różne.

Dane wyjściowe

Jedno słowo: Prawda, jeśli słowniki są identyczne, w przeciwnym razie Fałsz.

Ograniczenia

  • 1 ≤ n, m ≤ 20
  • każda lista ma od 1 do 20 liczb

Uwagi

  • Kolejność kluczy na wejściu też nie ma znaczenia.
  • Porównanie zbiorów (set) nie wystarczy, bo gubi powtórzenia — porównaj posortowane listy.

Przykłady

Wejście
2
a 1 2 3
b 4 5
2
a 3 2 1
b 5 4
Wyjście
Prawda
Wejście
1
a 1 2
1
a 2 1 1
Wyjście
Fałsz

Lista 2 1 1 zawiera liczbę 1 dwa razy, a lista 1 2 — tylko raz.

Potrzebujesz teorii?

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.

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 uruchomiono
Wejście
2
a 1 2 3
b 4 5
2
b 5 4
a 2 3 1
Oczekiwane wyjście
Prawda

Test 2

Nie uruchomiono
Wejście
1
a 1 2
1
a 1 2 2
Oczekiwane wyjście
Fałsz

Test 3

Nie uruchomiono
Wejście
1
x 7
1
y 7
Oczekiwane wyjście
Fałsz

Test 4

Nie uruchomiono
Wejście
1
k 5
2
k 5
m 1
Oczekiwane wyjście
Fałsz

Test 5

Nie uruchomiono
Wejście
2
a 1 1 2
b 3
2
a 1 2 2
b 3
Oczekiwane wyjście
Fałsz

Test 6

Nie uruchomiono
Wejście
1
liczby -1 0 -1
1
liczby 0 -1 -1
Oczekiwane wyjście
Prawda

Test 7

Nie uruchomiono
Wejście
3
a 1
b 2
c 3
2
a 1
b 2
Oczekiwane wyjście
Fałsz
Uruchom z własnymi danymi