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:

  1. piąty element,
  2. podlistę złożoną z elementów od trzeciego do siódmego (bez siódmego),
  3. 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ł:

  1. liczby parzyste,
  2. liczby podzielne przez trzy,
  3. 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