Kurs: Darmowy kurs Python dla początkujących
Lekcja 5: Listy i krotki
Tworzenie list i krotek
Listy i krotki to dwa podstawowe typy danych w Pythonie, które pozwalają przechowywać wiele wartości w jednej zmiennej. Dzięki nim możemy łatwo organizować i manipulować większymi zbiorami danych, takimi jak liczby, teksty czy inne obiekty.
1. Listy
Listy w Pythonie to kolekcje, które mogą przechowywać wiele elementów w określonej kolejności. Elementy listy są oddzielane przecinkami i umieszczane w nawiasach kwadratowych []
. Listy są dynamiczne, co oznacza, że można je modyfikować, dodając, usuwając lub zmieniając ich elementy.
# Tworzenie listy lista = [1, 2, 3, 4, 5] print(lista) # Wynik: [1, 2, 3, 4, 5] # Lista z różnymi typami danych lista_mieszana = [1, "Python", 3.14, True] print(lista_mieszana) # Wynik: [1, 'Python', 3.14, True]
Listy mogą zawierać dowolną liczbę elementów i mogą być puste:
# Pusta lista pusta_lista = [] print(pusta_lista) # Wynik: []
2. Krotki
Krotki w Pythonie są podobne do list, ale w przeciwieństwie do nich są niemodyfikowalne (ang. immutable). Oznacza to, że po utworzeniu krotki nie można zmieniać jej zawartości. Elementy krotki są oddzielane przecinkami i umieszczane w nawiasach okrągłych ()
.
# Tworzenie krotki krotka = (1, 2, 3, 4, 5) print(krotka) # Wynik: (1, 2, 3, 4, 5) # Krotka z różnymi typami danych krotka_mieszana = (1, "Python", 3.14, True) print(krotka_mieszana) # Wynik: (1, 'Python', 3.14, True)
Krotki również mogą być puste:
# Pusta krotka pusta_krotka = () print(pusta_krotka) # Wynik: ()
Jeśli krotka zawiera tylko jeden element, musisz dodać przecinek po tym elemencie, aby Python poprawnie rozpoznał ją jako krotkę:
# Krotka z jednym elementem jednoelementowa_krotka = (42,) print(jednoelementowa_krotka) # Wynik: (42,)
3. Różnice między listami a krotkami
Oto główne różnice między listami a krotkami:
Cechy | Listy | Krotki |
---|---|---|
Struktura | Nawiasy kwadratowe [] |
Nawiasy okrągłe () |
Modyfikowalność | Modyfikowalne (można zmieniać ich zawartość) | Niemodyfikowalne (zawartość jest stała po utworzeniu) |
Szybkość | Nieco wolniejsze od krotek | Szybsze dzięki niemodyfikowalności |
4. Użycie list i krotek w praktyce
Listy są najczęściej używane, gdy potrzebujemy kolekcji, która może być zmieniana, np. w przypadku przechowywania dynamicznych danych. Krotki są idealne do przechowywania danych, które powinny pozostać niezmienne, np. współrzędne punktu czy konfiguracje.
# Przykład użycia listy zakupy = ["chleb", "mleko", "ser"] zakupy.append("jajka") # Dodanie nowego elementu print(zakupy) # Wynik: ['chleb', 'mleko', 'ser', 'jajka'] # Przykład użycia krotki wspolrzedne = (50.0647, 19.9450) # Współrzędne Krakowa print(wspolrzedne)
Indeksowanie, dodawanie, usuwanie elementów
Listy i krotki w Pythonie umożliwiają przechowywanie wielu elementów w jednej kolekcji. Aby skutecznie pracować z tymi strukturami, musimy znać sposoby uzyskiwania dostępu do ich elementów (indeksowanie), a także metody dodawania i usuwania elementów (w przypadku list, ponieważ krotki są niemodyfikowalne).
1. Indeksowanie
W Pythonie elementy list i krotek są indeksowane, co oznacza, że każdy element ma przypisany numer (indeks). Indeksy zaczynają się od 0
dla pierwszego elementu, a dla ostatniego elementu można używać indeksów ujemnych.
Przykłady indeksowania:
# Lista do indeksowania lista = ["jabłko", "banan", "wiśnia"] # Uzyskiwanie dostępu do elementów print(lista[0]) # Pierwszy element: jabłko print(lista[1]) # Drugi element: banan print(lista[-1]) # Ostatni element: wiśnia # Indeksowanie krotki krotka = (10, 20, 30) print(krotka[2]) # Trzeci element: 30
Jeśli spróbujesz uzyskać dostęp do indeksu, który nie istnieje, Python zwróci błąd:
# Błąd indeksowania print(lista[5]) # IndexError: list index out of range
2. Dodawanie elementów do listy
W odróżnieniu od krotek, listy można modyfikować, co oznacza, że możemy dodawać do nich nowe elementy. Python oferuje kilka metod do dodawania elementów:
append()
– Dodaje element na końcu listy.insert()
– Wstawia element w określonym miejscu listy.extend()
– Dodaje wiele elementów do listy.
Przykłady:
# Dodawanie elementów lista = ["jabłko", "banan"] # Dodawanie elementu na końcu lista.append("wiśnia") print(lista) # Wynik: ['jabłko', 'banan', 'wiśnia'] # Wstawianie elementu w określonej pozycji lista.insert(1, "gruszka") print(lista) # Wynik: ['jabłko', 'gruszka', 'banan', 'wiśnia'] # Dodawanie wielu elementów lista.extend(["kiwi", "mango"]) print(lista) # Wynik: ['jabłko', 'gruszka', 'banan', 'wiśnia', 'kiwi', 'mango']
3. Usuwanie elementów z listy
Python oferuje kilka metod usuwania elementów z listy:
remove()
– Usuwa pierwsze wystąpienie określonego elementu.pop()
– Usuwa element z określonego indeksu (domyślnie ostatni element) i zwraca jego wartość.del
– Usuwa element z określonego indeksu lub całą listę.clear()
– Usuwa wszystkie elementy z listy.
Przykłady:
# Usuwanie elementów lista = ["jabłko", "banan", "wiśnia", "kiwi"] # Usuwanie elementu po nazwie lista.remove("banan") print(lista) # Wynik: ['jabłko', 'wiśnia', 'kiwi'] # Usuwanie elementu z określonego indeksu element = lista.pop(1) # Usuwa element o indeksie 1 print(element) # Wynik: wiśnia print(lista) # Wynik: ['jabłko', 'kiwi'] # Usuwanie elementu za pomocą del del lista[0] # Usuwa pierwszy element print(lista) # Wynik: ['kiwi'] # Usuwanie wszystkich elementów lista.clear() print(lista) # Wynik: []
4. Krotki – brak modyfikacji
W przeciwieństwie do list, krotki są niemodyfikowalne. Oznacza to, że nie można dodawać ani usuwać elementów z krotki po jej utworzeniu. Każda próba modyfikacji krotki spowoduje błąd:
# Próba modyfikacji krotki krotka = (1, 2, 3) krotka[0] = 10 # TypeError: 'tuple' object does not support item assignment
5. Praktyczne przykłady
Oto kilka praktycznych przykładów manipulacji elementami list:
# Lista zakupów zakupy = ["chleb", "mleko", "ser"] # Dodawanie produktu zakupy.append("jajka") print(zakupy) # Wynik: ['chleb', 'mleko', 'ser', 'jajka'] # Usuwanie produktu zakupy.remove("ser") print(zakupy) # Wynik: ['chleb', 'mleko', 'jajka']
Operacje na listach
Listy w Pythonie to niezwykle wszechstronne struktury danych, które oferują wiele możliwości manipulowania ich zawartością. W tej części omówimy najważniejsze operacje, które można wykonywać na listach, takie jak sortowanie, wyszukiwanie, kopiowanie i odwracanie elementów.
1. Sprawdzanie obecności elementu
Możesz sprawdzić, czy dany element znajduje się na liście, używając operatora in
:
# Sprawdzanie obecności elementu lista = ["jabłko", "banan", "wiśnia"] print("banan" in lista) # Wynik: True print("mango" in lista) # Wynik: False
2. Iterowanie po liście
Listy można łatwo iterować za pomocą pętli for
. Dzięki temu możemy uzyskać dostęp do każdego elementu listy:
# Iterowanie po liście lista = ["jabłko", "banan", "wiśnia"] for owoc in lista: print(owoc)
Wynik działania tego kodu to:
jabłko banan wiśnia
3. Sortowanie listy
Python oferuje wbudowaną metodę sort()
, która sortuje listę w miejscu (zmienia jej kolejność). Możesz również użyć funkcji sorted()
, która zwraca nową posortowaną listę, pozostawiając oryginalną listę bez zmian:
# Sortowanie listy lista = [3, 1, 4, 1, 5, 9] lista.sort() # Sortowanie rosnąco print(lista) # Wynik: [1, 1, 3, 4, 5, 9] # Sortowanie malejąco lista.sort(reverse=True) print(lista) # Wynik: [9, 5, 4, 3, 1, 1] # Użycie funkcji sorted oryginalna = [3, 1, 4, 1, 5, 9] posortowana = sorted(oryginalna) print(oryginalna) # Oryginalna lista pozostaje bez zmian print(posortowana) # Wynik: [1, 1, 3, 4, 5, 9]
4. Odwracanie kolejności elementów
Możesz odwrócić kolejność elementów w liście za pomocą metody reverse()
lub funkcji reversed()
:
# Odwracanie kolejności elementów lista = [1, 2, 3, 4, 5] lista.reverse() print(lista) # Wynik: [5, 4, 3, 2, 1] # Użycie funkcji reversed lista = [1, 2, 3, 4, 5] odwrocona = list(reversed(lista)) print(odwrocona) # Wynik: [5, 4, 3, 2, 1]
5. Kopiowanie listy
Aby skopiować listę, możesz użyć metody copy()
lub operatora wycinka [:]
. Kopiowanie jest ważne, gdy chcemy utworzyć nową listę, która nie będzie zależna od oryginalnej:
# Kopiowanie listy lista = [1, 2, 3, 4, 5] # Kopiowanie za pomocą copy() kopia1 = lista.copy() print(kopia1) # Wynik: [1, 2, 3, 4, 5] # Kopiowanie za pomocą wycinka kopia2 = lista[:] print(kopia2) # Wynik: [1, 2, 3, 4, 5]
6. Liczenie wystąpień elementu
Python umożliwia liczenie liczby wystąpień danego elementu na liście za pomocą metody count()
:
# Liczenie wystąpień elementu lista = [1, 2, 3, 1, 1, 4, 5] liczba_jedynek = lista.count(1) print(liczba_jedynek) # Wynik: 3
7. Łączenie list
Możesz łączyć dwie listy za pomocą operatora +
lub metody extend()
:
# Łączenie list za pomocą + lista1 = [1, 2, 3] lista2 = [4, 5, 6] polaczona = lista1 + lista2 print(polaczona) # Wynik: [1, 2, 3, 4, 5, 6] # Łączenie list za pomocą extend() lista1.extend(lista2) print(lista1) # Wynik: [1, 2, 3, 4, 5, 6]
8. Usuwanie duplikatów
Aby usunąć duplikaty z listy, możesz użyć zbiorów (set
), które automatycznie eliminują powtórzenia:
# Usuwanie duplikatów za pomocą set lista = [1, 2, 2, 3, 4, 4, 5] bez_duplikatow = list(set(lista)) print(bez_duplikatow) # Wynik: [1, 2, 3, 4, 5]
9. Wycinki (slicing)
W Pythonie możesz wycinać fragmenty listy za pomocą operatora wycinka (slice
):
# Wycinki lista = [0, 1, 2, 3, 4, 5] print(lista[1:4]) # Elementy od indeksu 1 do 3: [1, 2, 3] print(lista[:3]) # Pierwsze trzy elementy: [0, 1, 2] print(lista[3:]) # Od indeksu 3 do końca: [3, 4, 5] print(lista[::2]) # Co drugi element: [0, 2, 4]
Podsumowanie
Listy w Pythonie są niezwykle elastyczne i oferują szeroki zakres operacji, które ułatwiają manipulowanie danymi. W kolejnych lekcjach zobaczysz, jak wykorzystać listy w bardziej zaawansowanych projektach.
Następna lekcja ==> Słowniki i zbiory
Spis Treści - darmowy kurs Python dla początkujących
Lekcja 1: Wprowadzenie do programowania
- Co to jest programowanie?
- Dlaczego warto uczyć się Pythona?
- Instalacja Python i wprowadzenie do edytorów (IDLE, VS Code).
Lekcja 2: Pierwszy program w Pythonie
- Składnia Pythona.
- Wyświetlanie tekstu (funkcja print).
- Komentarze i ich znaczenie.
Lekcja 3: Podstawowe typy danych
- Liczby: int, float.
- Ciągi znaków (stringi).
- Typ logiczny (boolean).
- Funkcja type.
Lekcja 4: Zmienne i operatory
- Deklaracja i przypisywanie zmiennych.
- Operatory arytmetyczne, porównania, logiczne.
Lekcja 5: Listy i krotki
- Tworzenie list i krotek.
- Indeksowanie, dodawanie, usuwanie elementów.
- Operacje na listach.
Lekcja 6: Słowniki i zbiory
- Tworzenie i operacje na słownikach.
- Iteracja po słownikach.
- Zbiory i ich zastosowania.
Lekcja 7: Instrukcje warunkowe
- Instrukcje if, elif, else.
- Operatory logiczne w praktyce.
Lekcja 8: Pętle
- Pętla for i while.
- Instrukcje break, continue, else w pętlach.
Lekcja 9: Funkcje
- Tworzenie i wywoływanie funkcji.
- Argumenty i wartości domyślne.
- Funkcje anonimowe (lambda).
Lekcja 10: Praca z plikami
- Otwieranie, czytanie i zapisywanie plików.
- Obsługa błędów przy pracy z plikami.
Lekcja 11: Podstawy programowania obiektowego
- Klasy i obiekty.
- Atrybuty i metody.
- Prosty projekt: Zarządzanie listą zadań.
Lekcja 12: Tworzenie prostego kalkulatora
- Łączenie funkcji i warunków.
- Obsługa błędów (try-except).
Lekcja 13: Zarządzanie plikami tekstowymi
- Program do przechowywania i wyszukiwania notatek w plikach.
Lekcja 14: Prosta gra tekstowa w Python
- Wprowadzenie do pętli i logiki gry.
- Interaktywna gra konsolowa, np. zgadywanie liczby.
Jeśli chciałbyś być poinformowany o następnych kursach to zapisz się do naszego newslettera: