CodeGym /Kursy /Python SELF PL /Pobieranie podlist

Pobieranie podlist

Python SELF PL
Poziom 7 , Lekcja 3
Dostępny

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.

Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION