Ricerca nel sito web

Impara la struttura dei dati Python Set/Frozenset – Parte 4


In questa Parte 4 della serie Python Data Structure, discuteremo cos'è un set, come differisce da altre strutture dati in Python, come creare oggetti impostati, eliminare oggetti impostati e metodi per impostare oggetti .

  • Un oggetto impostato è una raccolta non ordinata di oggetti hash distinti.
  • Set rimuove automaticamente gli elementi duplicati dall'oggetto.
  • Poiché gli oggetti impostati non sono ordinati, non è supportata alcuna operazione di indicizzazione e suddivisione.

Attualmente sono disponibili due tipi di set integrati.

  1. set – Poiché è mutabile, non ha valore hash e non può essere utilizzato né come chiave del dizionario né come elemento di un altro set.
  2. frozenset – Immutabile e hashable – il suo contenuto non può essere modificato dopo la sua creazione; può quindi essere utilizzato come chiave di dizionario o come elemento di un altro insieme.

Costruisci oggetto impostato

Crea un set utilizzando il metodo di costruzione "set()" o utilizzando parentesi graffe con virgole che separano gli elementi "{a,b,c}".

NOTA: non è possibile costruire un oggetto impostato tramite parentesi vuote poiché creerà un oggetto dizionario.

Imposta metodi

Utilizza la funzione “dir()” integrata per elencare i metodi e gli attributi impostati disponibili.

Aggiungi elementi all'oggetto impostato

Come già affermato, set è un tipo mutabile. Puoi aggiungere, eliminare, aggiornare l'oggetto impostato una volta creato.

Parliamo dei due metodi impostati: aggiungi e aggiorna.

  • metodo add(elem) – Questo metodo aggiunge un singolo elemento a un oggetto impostato.
  • metodo update(*others) – Questo metodo aggiunge più elementi a un oggetto impostato. Puoi passare oggetti mutabili/immutabili come argomento nel metodo update.

NOTA: i duplicati verranno rimossi automaticamente.

Rimuovi/Cancella elementi da un oggetto impostato

Come hai visto in precedenza in altri argomenti relativi alla struttura dei dati (elenco, tuple, dizionario), anche per set puoi utilizzare la parola chiave incorporata “del” per eliminare l'oggetto set dallo spazio dei nomi (ovvero Memoria).

Di seguito sono riportati i metodi per impostare oggetti per rimuovere elementi.

  • clear() – Cancella tutti gli elementi rendendo vuoto il set. Questo metodo clear() è disponibile in altre strutture dati che forniscono la stessa funzionalità.
  • pop() – Rimuove gli elementi arbitrari.
  • discard(elem) – Se l'elemento non viene trovato nell'oggetto impostato, il metodo “discard()” non genererà alcun errore.
  • remove(elem) – Uguale al metodo “discard()” ma genererà KeyError quando un elemento non viene trovato.

Imposta operazioni

Set fornisce metodi per eseguire operazioni matematiche come intersezione, unione, differenza e differenza simmetrica. Ricordi il "diagramma di Venn" dei tempi del liceo?

Daremo un'occhiata ai metodi seguenti su come vengono eseguite le operazioni matematiche.

  • unione
  • intersezione
  • intersezione_aggiornamento
  • differenza_simmetrica
  • aggiornamento_differenza_simmetrica
  • differenza
  • differenza_aggiornamento
  • è disgiunto
  • issubset
  • issuperset

Unione, Intersezione, Differenza, Differenza_Simmetrica

  • union(*other) – Restituisce un nuovo set con gli elementi del set e tutti gli altri.
  • intersection(*other) – Restituisce un nuovo set con elementi comuni al set e a tutti gli altri.
  • differenza(*altri) – Restituisce un nuovo set con elementi nel set che non sono negli altri.
  • differenza_simmetrica(altro) – Restituisce un nuovo set con elementi nel set o in altro ma non in entrambi.

Intersezione_Aggiornamento

intersection_update(*others) – Aggiorna il set, mantenendo solo gli elementi trovati in esso e tutti gli altri.

Aggiornamento delle differenze

difference_update(*others) - Aggiorna il set, mantenendo solo gli elementi trovati in esso e tutti gli altri.

Simmetrico_Differenza_Aggiornamento

symmetric_difference_update(other) - Aggiorna il set, mantenendo solo gli elementi trovati in entrambi i set, ma non in entrambi.

Èdisgiunto, Èsottoinsieme, Èsuperinsieme

  • isdisjoint(other) - Restituisce True se l'insieme non ha elementi in comune con altri. Gli insiemi sono disgiunti se e solo se la loro intersezione è l'insieme vuoto.
  • issubset() - Verifica se ogni elemento del set si trova in un altro.
  • issuperset() - Verifica se ogni elemento dell'altro è presente nel set.

Metodo Copia()

Puoi creare una copia identica dell'oggetto impostato esistente utilizzando il metodo copy(). Questo metodo è disponibile anche per altri tipi di strutture dati come elenco, dizionario ecc...

Elimina l'oggetto impostato dallo spazio dei nomi utilizzando la parola chiave “del” incorporata.

Insieme congelato

  • Il set congelato è di tipo immutabile. Una volta costruito non è possibile aggiungere, rimuovere o aggiornare elementi dall'elenco.
  • Essendo immutabili, i set congelati possono essere sottoposti a hash e possono essere utilizzati come "chiave" per dizionari o elementi per un altro oggetto set.
  • Il set congelato viene costruito utilizzando la funzione “frozenset()”.
  • Il set congelato fornisce lo stesso insieme di metodi rispetto a "set" come union(), intersezione, copy(), isdisjoint() ecc.

Riepilogo

In questo articolo hai visto cosa è impostato, la differenza tra set e set congelato, come creare e accedere agli elementi del set, impostare i metodi ecc...