Zestawy Pythona: operacje, metody i teoria mnogości
Zestawy główne w Pythonie. Naucz się przechowywać unikalne wartości, wykonywać przecięcia, sumy, różnice i rozumieć korzyści wydajnościowe wynikające z mieszania.
Przegląd
Zestaw to nieuporządkowana kolekcja unikalnych elementów w Pythonie. Zestawy są zbudowane na tablicach skrótów, co czyni je wysoce zoptymalizowanymi pod kątem testowania członkostwa — określania, czy określony element znajduje się w kolekcji. O ile sprawdzenie, czy dana pozycja znajduje się na liście, wymaga przeskanowania każdej pozycji (operacja `O(N)`, o tyle sprawdzenie przynależności do zbioru przebiega w stałym czasie `O(1)`. To sprawia, że zestawy są niezwykle wydajne w zakresie eliminacji duplikatów i masowego filtrowania danych.
Zbiory inicjowane są za pomocą nawiasów klamrowych `{}` zawierających wartości (bez dwukropków) lub za pomocą wbudowanego konstruktora `set()`. Należy zauważyć, że ponieważ nawiasy klamrowe są również używane w słownikach, wpisanie pustych nawiasów klamrowych `{}` inicjuje pusty słownik. Aby zainicjować pusty zestaw, musisz użyć `set()`. Elementy wewnątrz zestawu muszą umożliwiać mieszanie i być niezmienne, co oznacza, że można przechowywać liczby, ciągi znaków i krotki, ale nie można przechowywać w zestawie list ani słowników.
Poza podstawowymi metodami dodawania i usuwania zestawy Pythona natywnie obsługują operacje z matematycznej teorii mnogości. Obejmuje to sumę (`|` lub `.union()`) do łączenia kolekcji, przecięcie (`&` lub `.intersection()`) do znajdowania wspólnych elementów, różnicę (`-` lub `.difference()`) do znajdowania elementów unikalnych dla jednej kolekcji oraz różnicę symetryczną (`^`) do pobierania elementów z dowolnego zestawu, ale nie obu. Zestawy masteringowe umożliwiają rozwiązywanie złożonych problemów z grupowaniem za pomocą czystego, wydajnego i czytelnego kodu.
Dane wyjściowe kodu i wykonania
Usuwanie duplikatów z listy i wykonywanie operacji na zbiorach matematycznych.
# Removing duplicates
roles_list = ["admin", "user", "editor", "admin", "user"]
# Sort the set to guarantee deterministic printed output
unique_roles = sorted(list(set(roles_list)))
print(f"Unique roles: {unique_roles}")
# Set operations
dev_skills = {"python", "javascript", "sql"}
ops_skills = {"sql", "docker", "kubernetes"}
# Union and Intersection (sorted for deterministic output)
all_skills = sorted(list(dev_skills | ops_skills))
common_skills = sorted(list(dev_skills & ops_skills))
unique_to_dev = sorted(list(dev_skills - ops_skills))
print(f"Union: {all_skills}")
print(f"Intersection: {common_skills}")
print(f"Dev only: {unique_to_dev}")Unique roles: ['admin', 'editor', 'user']
Union: ['docker', 'javascript', 'kubernetes', 'python', 'sql']
Intersection: ['sql']
Dev only: ['javascript', 'python']Wdrażanie krok po kroku
- Usuwanie zduplikowanych wpisów z wyników API lub plików CSV
- Określanie wspólnych elementów pomiędzy dwiema bazami danych
- Wykonywanie szybkich operacji wyszukiwania na dużych listach identyfikatorów
Często zadawane pytania
Czy elementy w zestawie są uporządkowane?
Nie, zestawy są nieuporządkowane. Nie można uzyskać dostępu do elementów za pomocą indeksu (jak set[0]) ani ich pokroić.
Jak dodać lub usunąć elementy w zestawie?
Użyj metody .add(), aby wstawić pojedynczy element, oraz metody .remove() lub .discard(), aby go usunąć. .discard() jest bezpieczniejsza, ponieważ nie generuje błędu w przypadku braku elementu.
Powiązane tematy
Dowiedz się wszystkiego o listach w Pythonie. Odkryj, jak tworzyć, wycinać, modyfikować i iterować po tablicach natywnie w języku Python.
Słowniki PythonaOpanuj słowniki Pythona. Dowiedz się, jak przechowywać, pobierać i obsługiwać dane pary klucz-wartość. Poznaj wydajność i najlepsze praktyki dotyczące mapowań.
Krotki PythonaZrozumienie krotek Pythona. Dowiedz się, kiedy używać krotek zamiast list, jak działa rozpakowywanie krotek i jak niezmienność gwarantuje bezpieczeństwo danych.
Polecane zasoby Pythona
Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.
Jak sortować listę w Pythonie
Dowiedz się, jak sortować listę w Pythonie za pomocą metody sort() i funkcji sorted(). Odkryj przykłady niestandardowego sortowania kluczy i odwrotnej kolejności.
Ściągawka dotycząca metod ciągów w Pythonie
Kompletny przewodnik dotyczący manipulacji ciągami znaków w języku Python. Opanuj formatowanie, wyszukiwanie, dzielenie, zastępowanie i sprawdzanie właściwości ciągów.
Python kontra JavaScript: który język programowania jest najlepszy?
Kompleksowe porównanie Pythona i JavaScript. Poznaj różnice w składni, wydajność, przypadki użycia (backend vs frontend) i przykłady kodowania.