1.7. Listy
Prezentacja
Zadania
Zadanie 1. Dana jest lista tri = [1, 3, 6, 10, 15, 21, 28, 36]
. Stwórz skrypt, który wypisze z tej listy w kolejnych linijkach:
- piąty element,
- podlistę złożoną z elementów od trzeciego do siódmego (bez siódmego),
- różnicę elementu pierwszego i ostatniego.
Zadanie 2. Napisz skrypt, który z zadeklarowanej listy z liczbami całkowitymi np. x = [4, -23, 16, -22, 0, 1, 8, -99]
, będzie w kolejnych linijkach wypisywał:
- liczby parzyste,
- liczby podzielne przez trzy,
- liczby, które znajdują się w liście
[1, 2, 3, 4, 5]
.
Zadanie 3. Mając daną listę liczb oraz liczbę k
, zwróć informację, czy w tej liście dowolne dwie będą się sumowały do wartości k
.
Przykład: dla listy x = [2, 3, 5, 7, 11, 13, 17]
i k = 12
program powinien zwrócić na ekran wartości 5, 7
, ponieważ 7 + 5 = 12.
Rozwiązania
Zadanie 1. Stosujemy informacje z prezentacji do poprawnego wypisania danych z listy. Nie różni się to w zasadzie niczym od wypisywania określonych znaków ze stringa.
1 2 3 4 5 | tri = [1, 3, 6, 10, 15, 21, 28, 36] print(tri[4]) print(tri[2:6]) print(tri[0] - tri[7]) |
Zadanie 2. Użyjemy tu trzech pętli, wkładając do każdej z nich instrukcję warunkową, która będzie filtrowała wartości listy x
. warunki będą wyglądały następująco:
- podzielność przez 2:
i % 2 == 0
, - podzielność przez 3:
i % 3 == 0
, - zawieranie się elementu w liście
[1,2,3,4,5]
:i in [1,2,3,4,5]
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | x = [4, -23, 16, -22, 0, 1, 8, -99] print("Parzyste: ") for i in x: if i % 2 ==0: print(i) print("Podzielne przez 3: ") for i in x: if i % 3 ==0: print(i) print("W liście [1,2,3,4,5]: ") for i in x: if i in [1,2,3,4,5]: print(i) |
Zadanie 3. Skrypt jest bardzo prosty w wykonaniu i nie wymaga użycia zagnieżdżonych w siebie pętli. Wystarczy zauważyć, że jeśli chcemy, żeby dwie liczby sumowały się np. do 12, to oprócz danego elementu listy (nazwijmy go i
) musi się w nim znajdować element 12 - i
. Jeśli tak jest, to faktycznie ich suma będzie równa 12.
Ten pomysł można zrealizować poniższym skryptem.
1 2 3 4 5 6 7 | x = [2, 3, 5, 7, 11, 13, 17] k = 12 for i in x: if k - i in x: print(i, 12-i) break |