Streszczenie Funkcje i listy w Pythonie
Funkcje i Listy w Pythonie: Kompletny Przewodnik dla Studentów
Wprowadzenie
Listy w Pythonie (list) są podstawową i bardzo użyteczną strukturą danych do przechowywania uporządkowanych kolekcji wartości. W tym materiale poznasz tworzenie list, podstawowe operacje na listach, popularne metody oraz praktyczne przykłady zastosowania w rzeczywistych zadaniach.
Lista (list) jest uporządkowaną, indeksowalną i mutowalną kolekcją, która może zawierać różne typy danych, w tym inne listy.
Podstawy list
Tworzenie listy
- Bezpośrednie przypisanie:
numbers = [1, 2, 3, 4, 5] - Pusta lista i dodawanie elementów:
measurements = []measurements.append(36.5)
Indeksowanie i wycinanie
- Indeksowanie zaczyna się od 0. Dostęp do elementów:
patients[0],patients[-1](ostatni element). - Wycinanie (slicing) pozwala na wybór podsekwencji:
patients[1:4](indeksy 1, 2, 3),patients[:3],patients[2:]. - Krok w operacji wycinania:
patients[::2](co drugi element),patients[::-1](odwrócona kolejność).
Praktyczny przykład:
- patients = ["Jan", "Marie", "Petr", "Anna", "Tomáš"]
patients[0]→ "Jan"patients[-1]→ "Tomáš"patients[1:4]→ ["Marie", "Petr", "Anna"]
Pamiętaj: w listach możesz zmieniać elementy za pomocą indeksu; w ciągach znaków nie jest to możliwe (ciągi znaków są niemutowalne).
Operacje na listach
Łączenie i powtarzanie
- Łączenie:
all_patients = group_a + group_b - Powtarzanie:
week_data = [0] * 7
Sprawdzanie zawartości
in,not indo sprawdzania obecności:if "Jan Novák" in patients:
Porównywanie list
- Porównywane są zarówno kolejność, jak i wartości:
[1,2,3] == [1,2,3]→ True,[1,2,3] == [3,2,1]→ False
Praca z wieloma listami jednocześnie
enumerate()
- Elegancki sposób na uzyskanie indeksu i wartości:
for i, patient in enumerate(patients, start=1): print(f"{i}. {patient}")
zip()
- Do równoległego przechodzenia przez dwie (lub więcej) listy:
for name, temp in zip(names, temperatures): print(f"{name}: {temp}°C")
Metody dodawania elementów
append(x)– dodaje pojedynczy element na koniec:patients.append("Petr").extend(iterable)– rozpakowuje obiekt iterowalny i dodaje jego elementy:patients.extend(["Petr","Anna"]).insert(index, x)– wstawia element na konkretną pozycję:patients.insert(1, "Anna").
Uwaga: append(["Petr","Anna"]) dodaje całą listę jako jeden element (lista zagnieżdżona).
Metody usuwania elementów
remove(x)– usuwa pierwsze wystąpienie wartościx. Jeśli nie istnieje, zgłasza błądValueError.- Wzorzec bezpieczeństwa:
if x in patients: patients.remove(x).
- Wzorzec bezpieczeństwa:
pop([index])– usuwa i zwraca element pod danym indeksem; domyślnie jest to ostatni element.last = patients.pop()first = patients.pop(0)
Inne przydatne metody
index(x)– zwraca indeks pierwszego wystąpieniax.count(x)– zlicza wystąpieniax.sort()– sortuje list w miejscu (modyfikuje oryginalny list). Nie ma wartości zwracanej (zwracaNone).sorted(list)– zwraca nowy, posortowany list; oryginalny pozostaje niezmieniony.
Tabela: Porównanie sort() vs sorted()
| Właściwość | list.sort() | sorted(list) |
|---|---|---|
| Modyfikuje oryginalny list | Tak | Nie |
| Zwraca nowy list | Nie | Tak |
| Zastosowanie | Gdy nie potrzebujesz oryginalnego | Gdy chcesz zachować oryginalny |
Kopie listy i odwołania
- Przypisanie
b = atworzy drugą nazwę dla tego samego obiektu (współdzielone odwołanie). - Aby uzyskać prawdziwą kopię, użyj
a.copy()luba[:].
Przykład:
- a = [1,2,3]
- b = a
- b.append(4) # a jest teraz [1,2,3,4]
- c = a.copy(); c.append(5) # a pozostaje [1,2,3,4], c jest [1,2,3,4,5]
Konwersja z innych typów danych
- Z tekstu na listę:
list("ACGTTAGC")→ rozpakowuje znaki. - Ze stringu za pomocą
split():data = "Jan,25,Praha"; parts = data.split(",")→ ["Jan","25","Praha"]
Masz już konto? Zaloguj się
Python Listy i Operacje
Klíčové pojmy: Lista jest zmienna, indeksowalna i uporządkowana, Tworzenie: [] lub [a,b,c]; pusta i stopniowe dodawanie elementów za pomocą append(), Indeksowanie zaczyna się od 0; wycinanie (slicing): start:stop:step, append() dodaje element; extend() rozszerza listę o elementy z obiektu iterowalnego, insert(i,x) wstawia element na indeksie i, remove(x) usuwa pierwsze wystąpienie; pop([i]) zwraca i usuwa element, list.sort() sortuje listę w miejscu (in-place); sorted(list) zwraca nową, posortowaną listę, b = a to referencja; użyj a.copy() lub a[:] do stworzenia kopii, enumerate() zwraca indeks i wartość; zip() do równoległego iterowania, split() konwertuje ciąg znaków na listę, dzieląc go separatorem, Sprawdzanie zawartości za pomocą in i not in, sort() nie zwraca wartości (None) — nie łączyć z przypisaniem