1.4. Listy i krotki

Informacja

W tym przykładzie poznasz listę oraz krotki. Są to jedne z najczęściej używanych złożonych struktur danych, które pozwalają przechowywać wiele danych pod jedną nazwą.

1.4.1. Zadanie

Napisz program lista.py, który pobiera z klawiatury n liczb całkowitych i zapisuje je w liście. Następnie wykonuje podane niżej operacje:

  • wypisuje elementy listy i ich indeksy w jednym wierszu,

  • wypisuje elementy listy w odwrotnej kolejności

  • wypisuje elementy listy posortowane w porządku niemalejącym,

  • wypisuje liczbę wystąpień oraz indeks pierwszego wystąpienia podanego elementu,

  • usuwa z listy podany element,

  • usuwa z listy element o podanym indeksie,

  • wstawia podany element na podanym indeksie,

  • wypisuje z listy elementy od indeksu i do j.

Dane:

Wszystkie dane to liczby całkowite pobierane z klawiatury, niektóre dane zapisywane są w tych samych zmiennych. sam.

  • n – liczba liczb pobieranych z klawiatury i zapisywanych w liście,

  • el – liczba, którą należy z listy usunąć,

  • el – liczba, której liczbę wystąpień i indeks pierwszego wystąpienia należy wypisać,

  • ind – indeks elementu do usunięcia,

  • ind, el – indeks i element, który należy wstawić do tabeli,

  • i, j – indeksy pobierane z klawiatury, oznaczające wycinek listy do wypisania.

Wskazówka

Wszystkie poniższe przykłady operacji na listach warto wykonać w konsoli Pythona. Treść komunikatów w funkcjach print() można skrócić. Można również wpisywać kolejne polecenia do pliku i sukcesywnie go uruchomiać.

Plik lista.pyKod nr
 1from random import randint
 2
 3n = int(input('Ile liczb podasz? '))
 4lista = []  # pusta lista
 5for i in range(n):
 6    liczba = int(input('Podaj liczbę: '))
 7    lista.append(liczba)
 8print('Elementy listy:', lista)
 9print()
10
11print('Elementy i indeksy – sposób 1:')
12for i in range(n):
13    # wypisuje: element (indeks)
14    print(f'{lista[i]} ({i})', end=' ')
15print('\n')
16
17print('Elementy i indeksy – sposób 2:')
18for i, e in enumerate(lista):
19    print(f'{e} ({i})', end=' ')
20print('\n')
21
22print('Elementy posortowane nierosnąco:')
23for e in reversed(lista):
24    print(e, end=' ')
25print('\n')
26
27print('Elementy posortowane niemalejąco:')
28for e in sorted(lista):
29    print(e, end=' ')
30print('\n')
31
32el = int(input('Podaj element, którego wystąpienia należy zliczyć: '))
33if el in lista:
34    print('Liczba wystąpień:', lista.count(el))
35    print('Indeks pierwszego wystąpienia:', lista.index(el))
36else:
37    print('Brak elementu w liście!')
38print()
39
40el = int(input('Podaj element do usunięcia: '))
41lista.remove(el)
42print(f'Usunięto {el} z listy:', lista)
43print()
44
45ind = int(input('Podaj indeks elementu do usunięcia: '))
46if 0 <= ind < len(lista):
47    el = lista.pop(ind)
48    print(f'Usunięto {el} z listy:', lista)
49else:
50    print('Indeks poza zakresem.')
51print()
52
53el = int(input('Podaj element do wstawienia: '))
54ind = int(input('Podaj indeks: '))
55lista.insert(ind, el)
56print(lista, '\n')
57
58i = int(input('Podaj indeks początkowy: '))
59j = int(input('Podaj indeks końcowy: '))
60print(lista[i:j])

Lista to sekwencja indeksowanych danych, zazwyczaj tego samego typu, w kodzie łatwo ją rozpoznać po nawiasach kwadratowych. Podstawowe operacje:

  • lista = [3, 'III', 4, 'IV'] – utworzenie listy poprzez podanie wartości,

  • lista = [] – utworzenie pustej listy,

  • lista[0] – odczyt elementu o podanym indeksie, indeksy zaczynają się od 0 (zera),

  • lista[1:4] – odczyt elementów od indeksu 1 do 3 przy użyciu notacji wycinkowej.

Funkcje działające na sekwencjach:

  • len() – zwraca liczbę elementów;

  • enumerate() – zwraca numer elementu i element sekwencji;

  • sorted(lista) – zwraca kopię sekwencji posortowanej niemalejąco;

  • sorted(lista, reverse=True) – zwraca kopię sekwencji w odwrotnym porządku;

  • reversed() – zwraca kopię sekwencji w odwrotnym porządku.

Informacja

Sekwencjami są w Pythonie również ciągi znaków i krotki (tuple).

Metody obiektów typu lista:

  • .append(x) – dodaje x do listy;

  • .remove(x) – usuwa pierwszy x z listy;

  • .insert(i, x) – wstawia x na indeksie i;

  • .count(x) – zwraca liczbę wystąpień x;

  • .index(x) – zwraca indeks pierwszego wystąpienia x;

  • .pop() – usuwa i zwraca ostatni element listy;

  • .pop(i) – usuwa i zwraca element wskazany przez i;

  • .sort() – sortuje listę rosnąco;

  • .reverse() – sortuje listę w odwróconym porządku.

Krotka (tupla) to niemodyfikowalna lista. Wykorzystywana jest do zapamiętywania i przekazywania wartości, których nie powinno się zmieniać. Krotki tworzymy podając wartości w nawiasach okrągłych, np. krotka = (1, 'a') lub z listy za pomocą funkcji: tuple(sekwencja). Krotka może powstać również poprzez spakowanie wartości oddzielonych przecinkami, np. krotka = 1, 'a'. Próba zmiany wartości w krotce generuje błąd.

Przetestuj w konsoli Pythona:

>>> krotka = 2, 6
>>> a, b = krotka
>>> print(a, b)
>>> krotka[0] = 1

1.4.1.1. Ćwiczenia

Utwórz w konsoli Pythona dowolną listę i przećwicz notację wycinkową:

  • sprawdź działanie indeksów pustych i ujemnych, np. lista[2:], lista[:4], lista[-2], lista[-2:],

  • posortuj trwale dowolną listę malejąco,

  • utwórz kopię listy posortowaną rosnąco.


Licencja Creative Commons Materiały Python 101 udostępniane przez Centrum Edukacji Obywatelskiej na licencji Creative Commons Uznanie autorstwa-Na tych samych warunkach 4.0 Międzynarodowa.

Utworzony:

2026-05-30 o 19:12 w Sphinx 7.3.7

Autorzy:

Robert Bednarz