Połączenie dwóch list

Zadanie 2 z 13 · rozdział 10Trudność: 1 z 3listyindeksyłączenie

Treść zadania

Wczytaj dwie listy liczb całkowitych i utwórz z nich dwie nowe listy:

a) Listę powstałą przez doklejenie listy 2 na koniec listy 1.
b) Kopię listy 1, w której elementy o parzystych indeksach (0, 2, 4, …) zastąpiono elementami listy 2 o tych samych indeksach. Element zastępujesz tylko wtedy, gdy indeks istnieje w obu listach — pozostałe elementy listy 1 zostają bez zmian.

Oba podpunkty wykonaj na oryginalnych listach z wejścia.

Dane wejściowe

  • 1. linia: lista 1 — liczby całkowite oddzielone spacjami
  • 2. linia: lista 2 — liczby całkowite oddzielone spacjami

Dane wyjściowe

  • 1. linia: wynik podpunktu a) jako lista, np. [1, 2, 3, 4, 5, 6]
  • 2. linia: wynik podpunktu b) jako lista

Przykłady

Wejście
1 2 3
4 5 6
Wyjście
[1, 2, 3, 4, 5, 6]
[4, 2, 6]
Wejście
-2 8 3 6
7 5 0
Wyjście
[-2, 8, 3, 6, 7, 5, 0]
[7, 8, 0, 6]

Indeksy parzyste listy 1 to 0 i 2 — ich wartości (-2 i 3) zastępujemy wartościami 7 i 0 z listy 2.

Potrzebujesz teorii?

Zasady obowiązujące w rozdziale 10

Zadania w tym rozdziale ćwiczą jednoczesną pracę na dwóch listach (lub dwóch napisach traktowanych jak ciągi znaków): łączenie, porównywanie, przechodzenie po indeksach i scalanie list posortowanych. Pod koniec rozdziału poznasz zbiory (set) — kolekcje bez powtórzeń, które pozwalają jednym działaniem wyznaczyć część wspólną, sumę czy różnicę dwóch list — oraz funkcje zip i enumerate, ułatwiające przechodzenie po dwóch ciągach naraz.

Konwencje wspólne:

  • Każde zadanie jest osobnym programem: czyta standardowe wejście i wypisuje wynik na standardowe wyjście.
  • Program nie wypisuje komunikatów typu „Podaj listę:”.
  • Każda lista zajmuje na wejściu jedną linię, a jej elementy są oddzielone pojedynczymi spacjami, np. 5 3 7 2. Najpierw podana jest lista 1, w następnej linii lista 2. Każda lista ma co najmniej jeden element.
  • Listę liczb całkowitych wczytasz tak: lista = [int(x) for x in input().split()] (dla liczb zmiennoprzecinkowych użyj float zamiast int).
  • Gdy wynikiem jest lista, wypisz ją tak, jak robi to print(lista) w Pythonie: w nawiasach kwadratowych, elementy oddzielone przecinkiem i spacją, np. [1, 2, 3]. Pusta lista to [].
  • Gdy treść mówi o elementach „oddzielonych przecinkami bez spacji”, wypisz je w jednej linii, np. 5,1,3, bez przecinka na końcu — np. print(*lista, sep=",").

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
0 1 2 3
9 8
Oczekiwane wyjście
[0, 1, 2, 3, 9, 8]
[9, 1, 2, 3]

Test 2

Nie uruchomiono
Wejście
5
7 8 9
Oczekiwane wyjście
[5, 7, 8, 9]
[7]

Test 3

Nie uruchomiono
Wejście
1 2 3 4 5
10 20 30 40 50
Oczekiwane wyjście
[1, 2, 3, 4, 5, 10, 20, 30, 40, 50]
[10, 2, 30, 4, 50]

Test 4

Nie uruchomiono
Wejście
4 4
-1 -2 -3 -4
Oczekiwane wyjście
[4, 4, -1, -2, -3, -4]
[-1, 4]

Test 5

Nie uruchomiono
Wejście
1 2 3 4 5 6
0 0 0
Oczekiwane wyjście
[1, 2, 3, 4, 5, 6, 0, 0, 0]
[0, 2, 0, 4, 5, 6]
Uruchom z własnymi danymi