top of page

Listy w Pythonie


Listy


Wstęp

Listy służą do przechowywania danych, np. odczytów temperatury w kolejnych dniach albo imion zawodników drużyny piłkarskiej.


Tworzenie

Listę tworzymy, zapisując jej zawartość w nawiasach kwadratowych, a kolejne elementy oddzielając przecinkami. Przykładowo lista [20, "Adam", 10, 20, "Ewa", True] zawiera sześć elementów. Lista może zawierać wartości różnych typów (liczby, słowa, wartości logiczne lub nawet inne listy). Wartości mogą się powtarzać (w przykładzie liczba 20 występuje dwukrotnie).

Listy, podobnie jak zmienne, mogą mieć ustalone przez nas nazwy. Na przykład:


informacje = [20, "Adam", 10, 20, "Ewa", True]
 

Jeśli chcemy utworzyć pustą listę, wystarczy zapisać:


informacje = []
 

Metoda append służy do dodania elementu na końcu listy. Polecenie dodania elementu zapisujemy następująco: najpierw piszemy nazwę listy, do której chcemy dodać element, następnie kropkę, nazwę metody (append), a na koniec w nawiasie podajemy wartość, którą chcemy dodać do listy. Przykładowo:


informacje.append(20)
informacje.append("Adam")
informacje.append(10)
informacje.append(20)
informacje.append("Ewa")
informacje.append(True)
 

Zachęcamy już teraz do rozwiązania pierwszego zadania z naszej platformy Codeforia - Listy - "5. Naprzemiennie".


Długość

Do obliczenia długości listy służy funkcja len. Na przykład len([5, 3, 5]) wynosi 3. Długość listy możemy zapisać w zmiennej, aby móc potem odwoływać się do tej wartości. Poniższy kod:


informacje = [20, "Adam", 10, 20, "Ewa", True]
dlugosc = len(informacje)
print(dlugosc)
 

wypisze na ekran liczbę 6.


Indeksowanie

Elementy listy (nazywane również komórkami) są ponumerowane (indeksowane) kolejnymi liczbami naturalnymi od 0. Spójrzmy na przykład:


#              0     1     2   3    4      5 
informacje = [20, "Adam", 10, 20, "Ewa", True]
 

Dzięki ponumerowaniu elementów (ich indeksowaniu) możemy łatwo się do nich odwoływać. Wystarczy podać nazwę listy i w nawiasach kwadratowych numer elementu. Przykładowo informacje[3] to odwołanie do komórki o indeksie 3 w liście informacje, która ma wartość 20.

Elementy listy mogą być modyfikowane. Poniższa instrukcja:


informacje[2] = "Codeforia"
 

zmienia wartość elementu o numerze 2 na napis "Codeforia".

Istnieje też drugi sposób numerowania (indeksowania). Do elementów listy można odwoływać się za pomocą indeksów ujemnych. Wówczas komórki listy są indeksowane od -1, od prawej do lewej.


#             -6    -5    -4  -3    -2    -1 
informacje = [20, "Adam", 10, 20, "Ewa", True]
 

Wówczas informacje[-2] to drugi element od prawej, który ma wartość “Ewa”.


Przechodzenie po liście

Załóżmy, że chcemy wypisać liczby nieparzyste znajdujące się w liście L = [4, 2, 3, 7, 10, 9]. Indeksowanie wykorzystamy do nawigacji. Pierwszy element ma numer 0, a ostatni długość listy minus 1 (w tym przypadku 5). Wystarczy zatem, wykorzystując pętlę for, przejść po kolejnych indeksach od 0 do len(L) - 1. Jeśli liczba pod rozważanym indeksem jest nieparzysta (przy dzieleniu przez 2 daje resztę 1), to ją wypisujemy. Można to zapisać na przykład następująco:


for i in range(len(L)):
    if L[i] % 2 == 1:
        print(L[i], end=" ")
 

Istnieje również sposób przechodzenia po liście, w którym nie korzysta się z indeksów. W tym przypadku również używamy pętli for. Zaczynamy słowem kluczowym for, następnie podajemy nazwę zmiennej, która w kolejnych krokach będzie przyjmowała kolejne wartości elementów listy podanej po słowie kluczowym in.


for wartosc in L:
    if wartosc % 2 == 1:
        print(wartosc, end=" ")
 

W powyższym kodzie w pierwszym kroku zmienna wartosc jest równa 4, w drugim kroku 2, w trzecim 3 itd.


Rozważmy kolejny przykład. Tym razem chcemy obliczyć sumę wszystkich liczb znajdujących się w liście i wypisać wynik. Wystarczy, że przeglądając kolejne liczby w liście, będziemy dodawali ich wartości do zmiennej suma kumulującej wynik.


suma = 0
for wartosc in L:
    suma += wartosc
print(suma)
 

Wczytywanie

Dowiemy się teraz jak wczytać wiele wyrazów lub liczb do listy. Użyjemy do tego funkcji input, która wczytuje wiersz tekstu. Metodą split podzielimy napis na wyrazy (spójne fragmenty oddzielone spacjami). Zatem wczytanie wiersza, podział na wyrazy i zapamiętanie wyniku w postaci listy można zrealizować następująco:


informacje = input().split()
 

W wyniku otrzymujemy listę słów. Przykładowo, po wczytaniu wiersza:

  • “ala ma kota” lista informacje przechowuje elementy ["ala", "ma", "kota"],

  • “5 12 9 10” lista informacje przechowuje elementy ["5", "12", "9", "10"].

Jeśli jednak chcemy zamiast listy napisów otrzymać listę liczb, wystarczy każdy element przekonwertować na liczbę:


for i in range(len(informacje)):
    informacje[i] = int(informacje[i])
 

Wypisywanie

Jeśli funkcji print jako argument podamy nazwę listy, na ekranie zobaczymy zawartość tej listy. Przykładowo:


liczby = [4, 3, 1, 2]
print(liczby)
 

wypisze na ekran:


[4, 3, 1, 2]
 

Zauważmy, że lista została wypisana z nawiasach kwadratowych, a jej elementy są oddzielone przecinkami i spacjami.

Jeśli jednak chcemy wyświetlić listę bez dodatkowych elementów formatujących, wystarczy wypisać osobno kolejne elementy, używając pętli for:


liczby = [4, 3, 1, 2]
for liczba in liczby:
    print(liczba, end=" ")
 

albo sprytną sztuczką składniową:


print(*liczby)
 

w wyniku wykonania powyższych programów na ekranie zobaczysz:


4 3 1 2
 

Operatory dla list

Listy możemy łączyć za pomocą operatora +. Na przykład, po wykonaniu instrukcji:


liczby = [5, 3] + [2, 4, 1]
 

lista liczby będzie równa [5, 3, 2, 4, 1].


Zwielokrotnienie listy wykonujemy za pomocą operatora *. Jednym z argumentów jest liczba (oznaczająca liczbę powtórzeń), a drugim jest lista do zwielokrotnienia. Na przykład, po wykonaniu kodu:


liczby = [5, 1] * 3
napisy = 2 * ["Code", "foria"]
 

lista liczby będzie równa [5, 1, 5, 1, 5, 1], a lista napisy będzie równa ["Code", "foria", "Code", "foria"].

Za pomocą operatora * możemy utworzyć np. 100-elementową listę złożoną z zer.


zera = [0] * 100
 
 

Trenuj z nami!

example lesson on codeforia

Pisanie programów jest bardzo ważnym elementem nauki programowania. Możesz to robić rozwiązując zadania (mikroprojekty) dostępne na naszej platformie edukacyjnej Codeforia. Rozwiązania są sprawdzane automatycznie, a po chwili od wysłania kodu dowiesz się, czy jest ono poprawne, czy wymaga zmian. Zapraszamy również na regularne zajęcia online, gdzie będziesz mógł/mogła rozwijać się pod okiem doświadczonego trenera.

Zobacz nasze dostępne kursy.

Comments


Kursy programowania dla dzieci i młodzieży.

bottom of page