set.difference()

Zwraca nowy zbiór z elementami pierwszego zbioru, których nie ma w pozostałych.

Zwraca
Nowy zbiór.
Zmienia oryginał
Nie
Na tej stronie

Przykład

#
Python
module_tasks = {"1_1", "1_2", "1_3", "1_4", "1_5"}
done = {"1_1", "1_3"}

todo = module_tasks.difference(done)
print(sorted(todo))
print(sorted(done - module_tasks))
Wynikzapisany wynik, możesz go sprawdzić
['1_2', '1_4', '1_5']
[]

Definicja i zastosowanie

#

Metoda difference() zwraca różnicę zbiorów: elementy zbioru, na którym ją wywołujesz, po odjęciu wszystkiego, co występuje w podanych kolekcjach. Kolejność ma znaczenie, bo a - b to zwykle coś innego niż b - a.

Operator - daje ten sam wynik dla dwóch zbiorów. Metoda przyjmuje też listy i inne kolekcje oraz kilka argumentów naraz.

Pokrewna operacja to różnica symetryczna, czyli metoda symmetric_difference() albo operator ^. Zwraca elementy, które należą do dokładnie jednego z dwóch zbiorów. Wersje zmieniające zbiór w miejscu to difference_update() i -=.

Składnia

#
Składnia
zbior.difference(*others)
zbior - inny

Parametry

#
  • *others

    zbiory lub inne kolekcje

    Kolekcje, których elementy zostaną odjęte.

Więcej przykładów

#
Różnica zwykła i symetryczna
Python
ania = {"HTML", "CSS", "Python"}
kuba = {"Python", "React"}

print(sorted(ania - kuba))
print(sorted(kuba - ania))
print(sorted(ania ^ kuba))
Wynikzapisany wynik, możesz go sprawdzić
['CSS', 'HTML']
['React']
['CSS', 'HTML', 'React']
Odejmowanie listy od zbioru
Python
words = ["python", "i", "listy", "w", "python", "zbiory"]
stop_words = ["i", "w", "oraz"]

print(sorted(set(words).difference(stop_words)))
Wynikzapisany wynik, możesz go sprawdzić
['listy', 'python', 'zbiory']

Dobre praktyki

#
  • Pamiętaj o kolejności: a - b zwraca to, co jest w a, a nie ma go w b.
  • Różnica zbiorów gubi kolejność i powtórzenia. Jeśli są ważne, filtruj listę: [x for x in items if x not in blocked], gdzie blocked jest zbiorem.

Powiązane hasła

#

Widzisz błąd albo brakuje przykładu? Napisz do nas.