Il set Python è un letterale univoco per filtrare valori distinti in un elenco o in un array di elementi. A differenza di un elenco, dizionario o tupla Python, non accetta duplicati. Quindi può essere un prezioso strumento di pulizia dei dati.
Ma come puoi creare un set e usarlo in Python? Lo spiegheremo in questo post.
Caratteristiche dei set Python
Oltre a non accettare duplicati, un set letterale ha altre caratteristiche che lo differenziano da altri tipi di dati. Ecco alcune delle sue caratteristiche:
- È immutabile: ciò significa che non puoi modificare i valori di un set una volta creato.
- Un valore letterale impostato restituisce una disposizione dinamica ogni volta che ne crei uno. In sostanza, gli elementi di un set non sono ordinati.
- Poiché presenta elementi non ordinati, a differenza dei valori letterali di elenco e dizionario, non è possibile ottenere i valori di un insieme dai loro indici.
Come creare e utilizzare un set Python
Ora che conosci le caratteristiche di base di un set Python. Vediamo alcuni dei modi in cui puoi usarlo nel tuo programma.
Usa le parentesi graffe per creare un set in Python. Quindi un set è un elenco di elementi tra parentesi graffe separati da virgole:
mySet = {1, 2, "MUO", "Google"}
print (mySet)
Uscita: {1, 2, "MUO", "Google"}
Puoi anche convertire qualsiasi altro tipo di dati in un set. Ad esempio, il codice seguente converte un elenco in un set:
myList = [1, 2, "MUO", "Google"]
mySet = set (myList)
print (mySet)
Uscita: {1, 2, "MUO", "Google"}
Per sicurezza, puoi controllare il tipo di dati di mySet:
myList = [1, 2, "MUO", "Google"]
mySet = set (myList)
print (tipo (mySet))
Produzione:
Come accennato in precedenza, un set non accetta duplicati. Questa funzionalità può essere utile quando si desidera pulire un array rimuovendo i valori duplicati.
Il codice seguente rimuove i duplicati in un elenco e presenta l'output come un set Python:
myList = [1, 2, 2 "MUO", "MUO", "Google", "Google"]
mySet = set (myList)
print (mySet)
Uscita: {1, 2, "MUO", "Google"}
Per dimostrare ulteriormente la funzione di filtraggio di un set, quando si stampa la lunghezza di un set, non vengono conteggiati i valori duplicati:
mySet = {1, 2, 2, "MUO", "MUO", "Google", "Google"}
print (len (mySet))
Uscita: 4
Per vedere un caso d'uso migliore di un set, rimuoviamo i duplicati nella seguente matrice. È come interrogare le chiavi univoche in un array.
Per fare ciò, converti un dizionario in un set:
myDiction = {
"Mango": 2, "Orange": 2, "carota": 2, "MUO": "tech",
"MUO": "web", "Google": "ricerca", "Google": "motore"
}
uniqueSet = set (myDiction)
print ("Queste sono le chiavi univoche: {}". format (uniqueSet))
Output: queste sono le chiavi univoche: {"Google", "Mango", "MUO", "Orange", "carrot"}
La conversione precedente rimuove automaticamente gli elementi duplicati dall'array.
Puoi modificare il codice sopra utilizzando un ciclo for per renderlo più chiaro:
per gli unici in uniqueSet:
print (unici)
Puoi anche unire due set con il file unione() metodo:
setA = {1, 3, 5}
setB = {1, 4, 6}
newSet = setA.union (setB)
print (newSet)
Uscita: {1, 3, 4, 5, 6}
Tuttavia, il codice precedente unisce i due set e rimuove i valori duplicati.
In alternativa puoi usare la pipa | funzione per unire i set in Python:
setA = {1, 3, 5}
setB = {1, 4, 6}
newSet = setA | setB
print (newSet)
Uscita: {1, 3, 4, 5, 6}
Puoi anche trovare la differenza tra due set in Python:
setA = {1, 3, 5}
setB = {2, 4, 5,}
print (setA.difference (setB))
Uscita: {1, 3}
Puoi trovare la differenza simmetrica tra gli insiemi A e B. Questo metodo restituisce gli elementi in entrambi gli insiemi ma esclude le loro intersezioni. Vediamo come funziona:
setA = {1, 3, 5}
setB = {2, 4, 5,}
print (setA ^ setB)
Uscita: {1, 2, 3, 4}
In alternativa, puoi utilizzare il file symmetric_difference () metodo:
setA = {1, 3, 5}
setB = {2, 4, 5,}
print (setA.symmetric_difference (setB))
Uscita: {1, 2, 3, 4}
Vediamo anche come trovare l'intersezione degli insiemi di seguito:
setA = {1, 3, 5}
setB = {1, 4, 6}
setC = {1, 5, 4}
newSet = setA.intersection (setB, setC)
print (newSet)
Uscita: {1}
Finché puoi aggiungere a un elenco in Python, non puoi fare la stessa cosa per un set Python. Tuttavia, puoi aggiungere un elemento alla fine di un set utilizzando il Inserisci funzione.
Ma il pitone Inserisci la funzione accetta un argomento, quindi puoi solo aggiungere una tupla a un insieme. Questo restituisce un insieme annidato:
setA = {1, 3, 5} setC = {1, 3}
newSet = 1, 6
setC.add (newSet)
print (setC)
Uscita: {1, (1, 6), 3}
Il set Python utilizza l'estensione isdisjoint () metodo per verificare se due insiemi sono disgiunti. Quindi restituisce un valore booleano:
setA = {1, 3, 5}
setB = {1, 4, 6}
findDisjoint = setA.isdisjoint (setB)
print ("È {} che setA è un disgiunto di B" .format (findDisjoint))
Risultato: è falso che setA sia disgiunto di B
Per verificare se un insieme è un sottoinsieme di un altro, sostituisci isdisjoint () con issubset ():
findSubset = setA.issubset (setB)
Puoi rimuovere un elemento da un insieme:
setA = {1, 3, 5}
setA.remove (5)
print (setA)
Uscita: {1, 3}
Il chiaro() metodo cancella gli elementi in un set e restituisce un set vuoto:
setA = {1, 3, 5}
setA.clear ()
print (setA)
Uscita: set ()
È possibile rimuovere un elemento arbitrario da un set e restituirne il valore utilizzando il set.pop () metodo:
setA = {1, 3, 5}
print (setA.pop ())
Puoi anche aggiornare un set Python con il metodo update ():
setA = {1, 'b'}
setB = {2, 4, 5,}
print (setA.update (setB))
print (setA)
Uscita: {1, 2, 4, 5, 'b'}
Gioca con i set Python
Sebbene abbiamo visto come puoi usare un set in Python, ci sono ancora altri modi pratici per applicarlo nel tuo codice. Come hai visto, può anche tornare utile durante la pulizia dei dati con Python.
Oltre a un set, altri tipi di dati o array Python hanno molti usi e varie applicazioni. Prova a giocare con loro per impararli meglio.
Le matrici e gli elenchi sono alcune delle strutture dati più utili nella programmazione, sebbene poche persone le utilizzino al massimo delle loro potenzialità.
Leggi Avanti
- Programmazione
- Pitone
Idowu è appassionato di qualsiasi tecnologia intelligente e produttività. Nel tempo libero, gioca con la programmazione e passa alla scacchiera quando è annoiato, ma ama anche staccarsi dalla routine una volta ogni tanto. La sua passione per mostrare alle persone come aggirare la tecnologia moderna lo motiva a scrivere di più.
Iscriviti alla nostra Newsletter
Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!
Ancora un passo…!
Conferma il tuo indirizzo e-mail nell'e-mail che ti abbiamo appena inviato.