Jak usunąć element z listy w Pythonie

Dowiedz się, jak usuwać elementy z listy Pythona. Opanuj różnicę między funkcjami usuwania(), pop(), del i clear dzięki bezpiecznej obsłudze błędów indeksu.

Wypróbuj to rozwiązanie w Edytorze

Przegląd

Modyfikowanie kolekcji poprzez usuwanie elementów to podstawowe zadanie podczas zarządzania kolejkami, analizowania konfiguracji lub filtrowania zbiorów danych. Ponieważ listy Pythona są modyfikowalne, możesz usuwać elementy na miejscu. Python oferuje kilka metod usuwania elementów, a wybór właściwej zależy od tego, czy chcesz usunąć według wartości, według indeksu, czy też całkowicie wyczyścić listę.

Aby usunąć element według jego wartości, użyj metody `.remove(value)`. Przeszukuje listę i usuwa *pierwsze* wystąpienie tej wartości. Jeśli wartość nie zostanie znaleziona, zgłosi błąd „ValueError”. Aby usunąć element o określonym indeksie i odzyskać jego wartość, użyj metody `.pop(index)` (która domyślnie wybiera ostatni element, jeśli nie podano indeksu).

Jeśli chcesz usunąć element indeksu bez zachowania jego wartości, możesz użyć instrukcji `del` (np. `del moja_lista[indeks]`). Do lokalnego usunięcia wszystkich pozycji z listy najskuteczniejszą metodą jest metoda `.clear()`. Zrozumienie tych operacji zapobiega błędom i problemom z wyciekiem pamięci.

Dane wyjściowe kodu i wykonania

Ten skrypt demonstruje usuwanie elementów listy według wartości przy użyciu funkcji usuwania(), według indeksu przy użyciu funkcji pop() i del oraz czyszczenie zawartości listy.

remove_list_items.py
Spróbuj w Edytorze
fruits = ["apple", "banana", "cherry", "banana", "date"]

# 1. Remove by value (deletes the first match only)
fruits.remove("banana")
print("After remove('banana'):", fruits)

# Handling ValueError safely
try:
    fruits.remove("orange")
except ValueError:
    print("Value 'orange' not found in list.")

# 2. Remove by index and retrieve item using pop()
popped_item = fruits.pop(1) # Removes index 1 ("cherry")
print(f"Popped: {popped_item} | List after pop:", fruits)

# 3. Delete by index without retrieving using del
del fruits[0] # Removes "apple"
print("After del index 0:", fruits)

# 4. Clear entire list in-place
fruits.clear()
print("After clear():", fruits)
Wyjście terminala
After remove('banana'): ['apple', 'cherry', 'banana', 'date']
Value 'orange' not found in list.
Popped: cherry | List after pop: ['apple', 'banana', 'date']
After del index 0: ['banana', 'date']
After clear(): []

Wdrażanie krok po kroku

  • Użyj list.remove(value), aby wyszukać i usunąć pierwsze wystąpienie określonej wartości.
  • Wywołaj list.pop(index), aby usunąć i zwrócić element w określonej pozycji indeksu.
  • Użyj instrukcji del list[index], aby usunąć element lub wycinek elementów bezpośrednio według indeksu.
  • Wywołaj funkcję list.clear(), aby usunąć wszystkie elementy na miejscu, pozostawiając pustą listę o rozmiarze 0.

Często zadawane pytania

Jaka jest różnica między pop() a del?

pop() usuwa element i zwraca go, umożliwiając przypisanie go do zmiennej. del to instrukcja usuwająca element z pamięci bez zwracania go.

Jak usunąć wszystkie wystąpienia wartości z listy?

Użyj rozumienia listy lub pętli while: lista = [x dla x na liście, jeśli x != wartość_docelowa]. Wywołanie metody usuwania() wewnątrz pętli może spowodować pominięcie elementów, jeśli zostaną one nieprawidłowo zmodyfikowane.

Powiązane tematy

Polecane zasoby Pythona

Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.