Podmień napisy z listy A na napisy z listy B
Treść zadania
Wczytaj tekst wielowierszowy oraz dwie listy słów tej samej długości: A i B. Zastąp w tekście każde wystąpienie słowa A[i] słowem B[i] (ten sam indeks).
- Zamieniaj tylko całe słowa (zob. konwencje rozdziału), np. słowo
kotnie zmienia się wewnątrzkotaanikot_1. Wielkość liter ma znaczenie. - Wszystkie zamiany wykonaj jednocześnie, na podstawie oryginalnego tekstu — wstawione słowo nie jest już ponownie zamieniane. Dla A =
kot piesi B =pies kottekstkot i pieszmienia się wpies i kot.
Dane wejściowe
- 1. linia:
n— liczba wierszy tekstu - kolejne
nlinii: tekst - następna linia: słowa listy A oddzielone spacjami
- ostatnia linia: słowa listy B oddzielone spacjami (tyle samo co w A)
Dane wyjściowe
Tekst po zamianach (tyle samo wierszy co na wejściu).
Ograniczenia
- $1 \le n \le 100$
- Listy mają co najmniej jedno słowo, słowa w liście A się nie powtarzają, a każde słowo składa się tylko z liter i cyfr.
Uwagi
- Zbuduj jeden wzorzec z alternatywą, np.
\b(kot|Ala)\b, i użyjre.sub()z funkcją, która dla dopasowanego słowa zwraca jego zamiennik ze słownika.
Przykład
1 Ala ma kota, a kot ma Alę. kot Ala pies Ola
Ola ma kota, a pies ma Alę.
Słowa kota i Alę się nie zmieniają — to inne słowa niż kot i Ala.
Potrzebujesz teorii?
Zasady obowiązujące w rozdziale 23
Poniższe zadania polegają na wczytywaniu danych ze standardowego wejścia (stdin) i wypisywaniu wyniku na standardowe wyjście (stdout). Rozwiązuj je za pomocą wyrażeń regularnych (moduł re).
Każde zadanie jest osobnym, niezależnym programem.
Konwencje wspólne:
- Każda wartość wejściowa znajduje się w osobnej linii — wczytuj je dokładnie w podanej kolejności.
- Tekst wielowierszowy jest poprzedzony linią z liczbą jego wierszy
n— wczytaj go, wywołującinput()nrazy. - Dla wartości logicznych wypisuj dokładnie
PrawdalubFałsz. - Wielkość liter ma znaczenie, chyba że zadanie mówi inaczej.
- Słowo to najdłuższy ciąg znaków dopasowywanych przez
\w, czyli liter (także polskich), cyfr i znaku podkreślenia_. Każdy inny znak — spacja, interpunkcja, myślnik — rozdziela słowa, np.biało-czerwonato dwa słowa:białoiczerwona. Granicę słowa w wyrażeniu regularnym oznacza\b. - Program nie wypisuje komunikatów typu „Podaj tekst:”. Tekst podany w
input("…")jest ignorowany przez sprawdzarkę.
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 uruchomiono1 dog cat doge dog cat wolf tiger
wolf tiger doge
Test 2
Nie uruchomiono1 kot goni psa, a pies goni kota kot pies pies kot
pies goni psa, a kot goni kota
Test 3
Nie uruchomiono2 Ala ma kota. Kota ma Ala! Ala kota Ola psa
Ola ma psa. Kota ma Ola!
Test 4
Nie uruchomiono1 biało-czerwona flaga czerwona zielona
biało-zielona flaga
Test 5
Nie uruchomiono1 a b c a b b c
b c c
Test 6
Nie uruchomiono1 kot_1 kot kot pies
kot_1 pies
Test 7
Nie uruchomiono2 nic do zamiany tutaj xyz abc
nic do zamiany tutaj