Wyrażenia listowe
Treść zadania
Wczytaj listę n liczb całkowitych i utwórz z niej trzy nowe listy — każdą jednym wyrażeniem listowym:
kwadraty— kwadraty wszystkich elementów (w tej samej kolejności),ujemne— tylko elementy ujemne (w kolejności występowania),etykiety— dla każdego elementu napis"P", jeśli jest parzysty, albo"N", jeśli jest nieparzysty.
Wypisz te trzy listy.
Dane wejściowe
- 1. linia: liczba elementów
n - 2. linia:
nliczb całkowitych oddzielonych spacjami
Dane wyjściowe
Trzy linie — listy kwadraty, ujemne i etykiety w formacie print(lista). Lista napisów wypisuje się z apostrofami, np. ['N', 'P']. Jeśli nie ma elementów ujemnych, druga linia to [].
Ograniczenia
- $n \ge 1$
Uwagi
- Wyrażenie listowe buduje listę w jednej linii:
[wyrażenie for x in lista], np.[x + 1 for x in [1, 2, 3]]daje[2, 3, 4]. Takiego wyrażenia używa już linia wczytująca listę:[int(x) for x in input().split()]. - Filtrowanie — warunek na końcu zostawia tylko pasujące elementy:
[x for x in lista if x > 2]; dla[1, 2, 3, 4]daje[3, 4]. - Wybór wartości — wyrażenie
a if warunek else bna początku wybiera wartość dla każdego elementu:["duża" if x > 2 else "mała" for x in lista]; dla[1, 3]daje['mała', 'duża']. - Zwróć uwagę na różnicę:
ifna końcu (bezelse) usuwa elementy, aif … else …na początku zamienia każdy element — lista wynikowa ma wtedy tyle samo elementów co wejściowa. 0jest liczbą parzystą.
Przykład
5 3 -2 0 -7 4
[9, 4, 0, 49, 16] [-2, -7] ['N', 'P', 'P', 'N', 'P']
Potrzebujesz teorii?
Zasady obowiązujące w rozdziale 9
Zadania w tym rozdziale ćwiczą podstawowe operacje na listach: wczytywanie, przechodzenie pętlą, modyfikowanie elementów, wyszukiwanie i zliczanie.
Konwencje wspólne:
- Każde zadanie (i każdy podpunkt) to osobny program: czyta standardowe wejście i wypisuje wynik na standardowe wyjście.
- Lista na wejściu zajmuje dwie linie: w 1. linii jest liczba elementów
n, a w 2. linii —nliczb oddzielonych pojedynczymi spacjami. Dodatkowe dane (np. szukany klucz) są w kolejnych liniach, po jednej wartości w linii. - Taką listę wczytasz np. tak:
```python
n = int(input())
lista = [int(x) for x in input().split()]` - Gdy wynikiem jest lista, wypisz ją instrukcją
print(lista). Python wypisze ją w nawiasach kwadratowych, z elementami oddzielonymi przecinkiem i spacją, np.[4, 10, 8]. Pusta lista to[]. - Jeśli zadanie mówi „oddzielone spacją” — użyj pojedynczej spacji.
- Indeksy elementów liczymy od
0. - 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 uruchomiono1 0
[0] [] ['P']
Test 2
Nie uruchomiono3 1 2 3
[1, 4, 9] [] ['N', 'P', 'N']
Test 3
Nie uruchomiono4 -1 -2 -3 -4
[1, 4, 9, 16] [-1, -2, -3, -4] ['N', 'P', 'N', 'P']
Test 4
Nie uruchomiono6 10 -5 7 -10 0 1
[100, 25, 49, 100, 0, 1] [-5, -10] ['P', 'N', 'N', 'P', 'P', 'N']
Test 5
Nie uruchomiono2 -9 8
[81, 64] [-9] ['N', 'P']