PythonSłowniki i zbiory
set. discard()
Usuwa element ze zbioru, jeśli w nim jest. Brak elementu nie powoduje błędu.
- Zwraca
None(zbiór zmienia się w miejscu).- Zmienia oryginał
- Tak
Przykład
#Python
online = {"Ania", "Kuba", "Ola"}
online.discard("Kuba")
online.discard("Iga")
print(sorted(online))Wynikzapisany wynik, możesz go sprawdzić
['Ania', 'Ola']
Definicja i zastosowanie
#Metoda discard(element) usuwa podany element ze zbioru. Gdy elementu nie ma, nic się nie dzieje, więc nie trzeba wcześniej sprawdzać, czy się w nim znajduje.
Jej odpowiednikiem jest remove(), która działa tak samo, ale przy braku elementu zgłasza KeyError. Wybierz remove(), gdy brak elementu oznacza błąd w programie, a discard(), gdy to normalna sytuacja.
Obie metody zmieniają zbiór w miejscu i zwracają None. Wiele elementów naraz usuniesz operatorem -= albo metodą difference_update(), a pop() usuwa i zwraca dowolny element.
Składnia
#Składnia
zbior.discard(element)Parametry
#element
wartość hashowalna
Element do usunięcia.
Więcej przykładów
#Python
badges = {"start", "seria_7"}
badges.discard("mistrz")
print(sorted(badges))
try:
badges.remove("mistrz")
except KeyError as error:
print("KeyError:", error)Wynikzapisany wynik, możesz go sprawdzić
['seria_7', 'start']
KeyError: 'mistrz'
Python
tasks = {"html", "css", "js", "python"}
done = {"css", "js"}
tasks -= done
print(sorted(tasks))Wynikzapisany wynik, możesz go sprawdzić
['html', 'python']
Dobre praktyki
#- Gdy element może nie istnieć, wybierz
discard(). Kod bezif x in zbior:jest krótszy i czytelniejszy. - Nie usuwaj elementów ze zbioru w pętli po tym samym zbiorze. Przejdź po kopii albo zbuduj nowy zbiór.
Powiązane hasła
#- set.add()Dodaje element do zbioru. Jeśli element już w nim jest, zbiór się nie zmienia.
- set.difference()Zwraca nowy zbiór z elementami pierwszego zbioru, których nie ma w pozostałych.
- dict.pop()Usuwa klucz ze słownika i zwraca jego wartość, opcjonalnie z wartością zastępczą.
- list.remove()Usuwa pierwsze wystąpienie podanej wartości z listy.
Widzisz błąd albo brakuje przykładu? Napisz do nas.