62
Rozdział 2.
Manipulowanie listami
Usuwanie obiektów z listy
Listy w Pythonie oferują podobne możliwości do tablic w innych językach programowania, a także
wiele innych.
To, że listy mogą się dynamicznie rozrastać, gdy potrzeba więcej miejsca (dzięki metodzie
append
),
zapewnia znaczny wzrost wydajności pracy. O szczegóły działania tego mechanizmu dba interpreter,
podobnie jak ma to miejsce w przypadku wielu innych możliwości Pythona. Gdy lista potrzebuje
więcej pamięci, interpreter dynamicznie
przydziela jej tyle, ile trzeba. Podobnie jest, gdy lista się
kurczy; interpreter dynamicznie
zwalnia wtedy pamięć, która nie jest już liście potrzebna.
Korzystanie z list umożliwiają odpowiednie metody. Na czterech kolejnych stronach przedstawimy Ci
cztery najbardziej przydatne z nich:
remove
,
pop
,
extend
oraz
insert
.
obiekt
obiekt
obiekt
obiekt
obiekt
Lista
0
1
2
3
4
Metoda remove: jako swój jedyny argument przyjmuje wartość obiektu.
Metoda
remove
umożliwia usunięcie z listy pierwszego wystąpienia określonej wartości danej.
Jeśli wartość ta zostaje znaleziona na liście, obiekt, który ją zawiera, jest usuwany z listy (a ona
sama zmniejsza swój rozmiar o jeden). Jeśli wartość
nie występuje na liście, interpreter zgłasza
błąd (więcej na ten temat dowiesz się nieco później).
1
To NIE jest wartość indeksu, lecz
wartość, która ma zostać usunięta
z listy.
>>> nums = [1, 2, 3, 4]
>>> nums
[1, 2, 3, 4]
>>> nums.remove(3)
>>> nums
[1, 2, 4]
1
4
3
2
Tak właśnie
wygląda lista nums,
zanim wywołamy
metodę remove.
1
42
Po wywołaniu
funkcji remove
obiekt zawierający
wartość 3 zniknął
z listy.
jesteś tutaj�
63
Dane
obiekt
obiekt
obiekt
obiekt
obiekt
Lista
0
1
2
3
4
Wyciąganie obiektów z listy
Metoda
remove
sprawdza się doskonale, gdy znasz wartość obiektu, który chcesz usunąć z listy.
Często jednak zdarza się, że chcesz usunąć obiekt spod określonego indeksu.
W tym celu język Python zapewnia metodę
pop
.
To jest wartość indeksu. Zero
odpowiada pierwszemu obiektowi
na liście (czyli liczbie 1).
>>> nums.pop()
4
>>> nums
[1, 2]
>>> nums.pop(0)
1
>>> nums
[2]
W tym momencie
lista nums jest
już zredukowana
do listy
jednoelementowej.
1
42
Przed wywołaniem
metody pop nasza lista
zawiera trzy obiekty.
1
4
2
1
2
Metoda pop zwraca
usunięty obiekt;
zajmowana przez niego
pamięć jest zwalniana.
Po wywołaniu
metody pop
lista się kurczy.
Tak samo jak
wcześniej, metoda
pop zwraca usunięty
obiekt. Również
tym razem pamięć
zajmowana przez
obiekt jest zwalniana
przez interpreter.
Lista nums skurczyła
się i jest teraz listą
jednoelementową.
Nie poinformowaliśmy
metody pop, który element
należy usunąć, dlatego
działa ona w odniesieniu
do ostatniego elementu
znajdującego się na liście.
Metoda pop: jako swój argument przyjmuje opcjonalną wartość indeksu.
Metoda
pop
usuwa z istniejącej listy i zwraca obiekt o określonej wartości indeksu.
Jeśli wywołasz tę metodę bez podania tej wartości, zwracany jest i usuwany z listy ostatni
znajdujący się na niej obiekt. Jeśli określisz wartość indeksu, zwracany i usuwany jest obiekt
znajdujący się w tym miejscu. Jeśli lista jest pusta lub wywołujesz metodę
pop
z nieistniejącą
wartością indeksu, interpreter
zgłasza błąd (więcej na ten temat dowiesz się nieco później).
Obiekty zwracane przez metodę
pop
mogą być przypisywane do zmiennych, jeśli jest
taka potrzeba, dzięki czemu zostają zachowane. Jeśli jednak nie zostaną one do niczego
przypisane, po prostu znikają, a zajmowana przez nie pamięć jest odzyskiwana.
2
Get Python Rusz głową! Wydanie II now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.