3.1 Zakres indeksów
Pobranie podlisty z listy to często spotykane zadanie, które rozwiązuje się za pomocą mechanizmu slicing. Slicing pozwala wyciągać elementy z listy, podając początkowy i końcowy indeks zakresu, a także krok, z jakim należy pobierać elementy.
Użycie slicing
Podlistę można uzyskać, używając składni list[start
:stop
:step
], gdzie:
-
start
— początkowy indeks elementu (włączająco); -
stop
— końcowy indeks elementu (wyłączająco); -
step
— krok, z jakim odbywa się wybór elementów.
Składnia slicing pozwala podać początkowy i końcowy indeks listy, którą chcesz wyciągnąć. Pamiętaj, że indeksowanie w Pythonie zaczyna się od zera, czyli pierwszy element ma indeks 0, a trzeci — indeks 2.
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# Pobieranie podlisty od trzeciego do siódmego elementu
sub_list = my_list[2:7]
print(sub_list) # [2, 3, 4, 5, 6]
# Pobieranie co drugiego elementu listy
step_list = my_list[0:10:2]
print(step_list) # [0, 2, 4, 6, 8]
Jeśli start
nie jest podany, domyślnie wynosi początek listy, a jeśli stop
nie jest podany — koniec listy. Jeśli step
nie jest podany, domyślnie wynosi 1.
Przykłady:
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# Od początku do trzeciego elementu
sub_list = my_list[:3]
print(sub_list) # [0, 1, 2]
# Od pierwszego elementu/indeksu do końca
step_list = my_list[1:]
print(step_list) # [1, 2, 3, 4, 5, 6, 7, 8, 9]
3.2 Negatywne indeksy
W Pythonie negatywne indeksy oferują potężny sposób pracy z listami, pozwalając odnosić się do elementów od końca listy. To szczególnie przydatne przy pobieraniu podlist, nie znając dokładnej długości pierwotnej listy.

Negatywne indeksy w Pythonie zaczynają się od -1, co odpowiada ostatniemu elementowi listy. -2 będzie wskazywać przedostatni element i tak dalej. Użycie negatywnych indeksów upraszcza dostęp do elementów od końca listy bez konieczności obliczania ich pozycji od początku.
Przykłady użycia
Załóżmy, że masz listę:
my_list = ['a', 'b', 'c', 'd', 'e']
Aby pobrać ostatnie trzy elementy, można użyć slicing z negatywnymi indeksami:
sub_list = my_list[-3:]
print(sub_list) # Wyświetli ['c', 'd', 'e']
Jeśli chcesz pobrać podlistę pomiędzy jakimiś elementami, zaczynając od końca, można łączyć negatywne i pozytywne indeksy:
sub_list = my_list[-4:3]
print(sub_list) # Wyświetli ['b', 'c']
Można nawet odwrócić listę do góry nogami
Za pomocą parametru step można tworzyć bardziej skomplikowane slicing, na przykład, aby pobrać elementy w odwrotnej kolejności:
sub_list = my_list[::-1]
print(sub_list) # Wyświetli ['e', 'd', 'c', 'b', 'a']
Zalety użycia negatywnych indeksów:
- Uproszczenie kodu: Dostęp do elementów od końca listy staje się intuicyjny i nie wymaga dodatkowych obliczeń.
- Uniwersalność: Podejście działa z każdą listą, niezależnie od jej rozmiaru.
- Czytelność: Kod staje się łatwiejszy do przeczytania i zrozumienia, szczególnie gdy trzeba pracować z ostatnimi elementami listy.
Negatywne indeksy to potężne narzędzie w arsenale programisty Pythona, pozwalające efektywnie i zwięźle zarządzać podlistami, poprawiając czytelność i elastyczność kodu.
3.3 Czy element jest na liście?
Sprawdzenie obecności elementu na liście jest często używane do zarządzania przepływem danych i logiką programów. W Pythonie można to zrobić za pomocą operatora in
, który zwraca True
, jeśli element występuje na liście, i False
w przeciwnym razie.
Użycie operatora in
Operator in
jest prostym i intuicyjnym sposobem na sprawdzenie obecności elementu:
my_list = [1, 2, 3, 4, 5]
element = 3
exists = element in my_list
print(exists) # Wyświetli True
Zastosowanie w wyrażeniach warunkowych
Operator in
jest często używany w operatorach warunkowych, na przykład:
my_list = ["apple", "banana", "cherry"]
element = "apple"
if element in my_list:
print("Element znajduje się na liście.")
else:
print("Element nie został znaleziony.")
Przydatne!
Wyszukiwanie elementu za pomocą in
jest efektywne dla małych lub średnich list. Jednak dla dużych danych lub częstych operacji wyszukiwania może być bardziej efektywne użycie innych struktur danych, takich jak zbiory (set
), które zapewniają szybsze wyszukiwanie.
GO TO FULL VERSION