Insiemi Python: operazioni, metodi e teoria degli insiemi
Set principali in Python. Impara a memorizzare valori univoci, eseguire intersezioni, unioni, differenze e comprendere i vantaggi prestazionali dell'hashing.
Panoramica
Un Set è una raccolta non ordinata di elementi univoci in Python. I set sono costruiti su tabelle hash, il che li rende altamente ottimizzati per i test di appartenenza, determinando se un elemento specifico è all'interno della raccolta. Mentre controllare se un elemento è in un elenco richiede la scansione di ogni elemento (un'operazione `O(N)`), il controllo dell'appartenenza a un set viene eseguito in tempo costante `O(1)`. Ciò rende i set incredibilmente potenti per l'eliminazione dei duplicati e il filtraggio dei dati in blocco.
Gli insiemi vengono inizializzati utilizzando le parentesi graffe `{}` contenenti valori (senza due punti) o utilizzando il costruttore `set()` integrato. Si noti che poiché le parentesi graffe vengono utilizzate anche per i dizionari, scrivere parentesi graffe vuote `{}` inizializza un dizionario vuoto. Per inizializzare un set vuoto, è necessario utilizzare `set()`. Gli elementi all'interno di un set devono essere hashable e immutabili, il che significa che puoi memorizzare numeri, stringhe e tuple, ma non puoi memorizzare elenchi o dizionari all'interno di un set.
Oltre ai metodi di addizione e cancellazione di base, gli insiemi Python supportano nativamente le operazioni della teoria matematica degli insiemi. Ciò include Unione (`|` o `.union()`) per unire raccolte, Intersezione (`&` o `.intersection()`) per trovare elementi comuni, Differenza (`-` o `.difference()`) per trovare elementi univoci di una raccolta e Differenza simmetrica (`^`) per recuperare elementi in uno dei due set ma non in entrambi. Il mastering dei set consente di risolvere problemi di raggruppamento complessi con codice pulito, performante e leggibile.
Codice e output di esecuzione
Rimozione di duplicati da un elenco ed esecuzione di operazioni matematiche sugli insiemi.
# 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']Implementazione passo dopo passo
- Rimozione di voci duplicate dai risultati API o dai file CSV
- Determinazione degli elementi comuni tra due database
- Esecuzione di operazioni di ricerca rapida su elenchi di ID di grandi dimensioni
Domande frequenti
Gli elementi di un insieme sono ordinati?
No, i set non sono ordinati. Non è possibile accedere agli elementi tramite un indice (come set[0]) o suddividerli.
Come faccio ad aggiungere o rimuovere elementi in un set?
Utilizza il metodo .add() per inserire un singolo elemento e .remove() o .discard() per rimuoverne uno. .discard() è più sicuro in quanto non genera un errore se manca l'elemento.
Argomenti correlati
Scopri tutto sugli elenchi Python. Scopri come creare, suddividere, modificare ed eseguire l'iterazione degli array in Python in modo nativo.
Dizionari PythonDizionari principali di Python. Impara a archiviare, recuperare e gestire i dati delle coppie chiave-valore. Comprendere le prestazioni e le best practice per le mappature.
Tuple PythonComprendere le tuple Python. Scopri quando utilizzare le tuple sugli elenchi, come funziona il decompressione delle tuple e come l'immutabilità garantisce la sicurezza dei dati.
Risorse Python consigliate
Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.
Come ordinare un elenco in Python
Scopri come ordinare un elenco in Python utilizzando il metodo sort() e la funzione sorted(). Scopri l'ordinamento delle chiavi personalizzato e gli esempi di ordine inverso.
Foglio informativo sui metodi delle stringhe Python
Una guida di riferimento completa per la manipolazione delle stringhe Python. Padroneggia la formattazione, la ricerca, la divisione, la sostituzione e il controllo delle proprietà delle stringhe.
Python vs JavaScript: quale linguaggio di programmazione è il migliore?
Un confronto completo tra Python e JavaScript. Esplora le differenze di sintassi, le prestazioni, i casi d'uso (backend e frontend) ed esempi di codifica.