PythonSłowniki i zbiory
set. difference()
Zwraca nowy zbiór z elementami pierwszego zbioru, których nie ma w pozostałych.
- Zwraca
- Nowy zbiór.
- Zmienia oryginał
- Nie
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 - innyParametry
#*others
zbiory lub inne kolekcje
Kolekcje, których elementy zostaną odjęte.
Więcej przykładów
#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']
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 - bzwraca to, co jest wa, a nie ma go wb. - 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], gdzieblockedjest zbiorem.
Powiązane hasła
#- set.union()Zwraca nowy zbiór z elementami ze wszystkich podanych zbiorów, bez powtórzeń.
- set.intersection()Zwraca nowy zbiór z elementami, które występują we wszystkich podanych zbiorach.
- set.discard()Usuwa element ze zbioru, jeśli w nim jest. Brak elementu nie powoduje błędu.
- Wyrażenia listoweZwięzły sposób tworzenia list, zbiorów i słowników z innych kolekcji.
Widzisz błąd albo brakuje przykładu? Napisz do nas.