Come usare gli oggetti Frozenset in Python

Come usare gli oggetti Frozenset in Python

Questo articolo coprirà una guida sull'uso della funzione "Frozenset" in Python che restituisce un nuovo oggetto Python di tipo Frozenset. Questi oggetti sono simili agli oggetti impostati disponibili in Python con alcune differenze chiave. Tutti i campioni di codice in questo articolo sono testati con Python 3.9.5 su Ubuntu 21.04.

A proposito di congessette

IL Funzione Frozenset prende un argomento di un oggetto Python di tipo iteble e restituisce un nuovo oggetto Python di tipo congelato. Un oggetto di tipo congelato è un oggetto Python hashable e immutabile i cui elementi sono congelati o immutabili per tutta la vita. Contrariamente a un oggetto Python di tipo set i cui elementi possono essere modificati in qualsiasi momento, tutti gli elementi in un congelamento rimangono costanti. L'uso delle congessette può essere meglio compreso attraverso esempi. Alcuni di loro sono spiegati di seguito.

Creazione di un nuovo oggetto Frozenset

Per ottenere un nuovo Oggetto di tipo Frozenset, Basta fornire qualsiasi tipo iterabile come argomento opzionale alla funzione Frozenset. Ecco un esempio di codice:

L = [1, 2, 3, 4]
FSET = Frozenset (L)
Stampa (FSET)
Stampa (tipo (FSET))

La prima dichiarazione nel codice definisce un nuovo elenco che viene semplicemente chiamato "L". Successivamente, un nuovo Frozenset L'oggetto viene creato chiamando la funzione Frozenset e fornendo l'elenco come argomento. Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:

Frozenset (1, 2, 3, 4)

Come puoi vedere nell'output, FSET è un Frozenset Digitare l'oggetto e utilizza la sintassi delle parentesi graffe utilizzata anche dai set in Python. Frozenset contenere elementi unici solo poiché i duplicati non sono consentiti, sempre molto simili agli oggetti del tipo set Python. Ogni Frozenset Il tipo di tipo è un set di Python ma viceversa non è vero poiché gli elementi set possono essere modificati chiamando alcuni metodi. Nota che è possibile creare un vuoto Frozenset chiamando il Frozenset funzione senza alcun argomento.

Non è possibile modificare un frozenset una volta creato

Come affermato in precedenza, a Frozenset Digitare L'oggetto ha elementi che non cambiano durante la loro vita. Mentre è possibile utilizzare i metodi disponibili per set Python con oggetti di tipo Frozenset, viene lanciato un errore se si tenta di utilizzare un metodo che modifica l'originale Frozenset oggetto stesso. Ecco un esempio:

L = [1, 2, 3, 4]
new_set = set (l)
nuovo set.rimuovere (1)
Stampa (new_set)
FSET = Frozenset (L)
FSET.rimuovere (1)

Nel campione di codice sopra, ci sono due affermazioni in cui il "rimuovere"Il metodo degli oggetti del tipo set viene chiamato. Mentre un oggetto viene rimosso correttamente da "nuovo set", Viene lanciato un errore quando viene chiamato il metodo Rimuovi"FSET". Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:

2, 3, 4
Traceback (chiamata più recente per ultima):
File "Main.py ", riga 9, in
FSET.rimuovere (1)
AttributeError: L'oggetto "Frozenset" non ha attributo "Rimuovi"

Altri metodi simili come "Aggiungi", "Pop", "Clear", "Scardut" e così via non funzionerà con le forzensette.

Metodi che funzionano con congeletteri

Tutti i metodi di set Python che non modificano gli elementi di un set funzionante con Frozenset digitare oggetti. Quindi puoi confrontare due congessette per uguaglianza o disuguaglianze, iterare / loop attraverso di esse, ottenere elementi comuni o unici tra due congeletti e così via. Di seguito è riportato un esempio che mostra alcuni dei metodi che funzionano con le frozenset.

FSET1 = Frozenset ([1, 2, 3, 4])
FSET2 = Frozenset ([3, 4, 5, 6])
Stampa (FSET1.intersezione (fset2))
Stampa (FSET1.Union (FSET2))
Stampa (FSET1.Differenza (FSET2))
Stampa (LEN (FSET1))
Stampa (LEN (FSET2))

Il codice è autoesplicativo. Alcuni metodi che non cambiano i valori dell'originale Frozenset sono stati chiamati. Questi metodi sono stati utilizzati principalmente per confrontare gli elementi di due diversi Frozenset. Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:

Frozenset (3, 4)
Frozenset (1, 2, 3, 4, 5, 6)
Frozenset (1, 2)
4
4

Alcuni degli altri metodi che funzionano con set congelati sono: "ISSUBSET", "ISSUPERSET", "Symmetric_Diffference", "Copy" e così via. Operatori di uguaglianza come ">", "=" e "<=” also work with frozenset type objects.

Le congessette possono essere convertite in altri tipi iterabili

Puoi convertire Frozenset Digita oggetti ad altri iterables chiamando il loro costruttore principale. Il campione di codice seguente mostra la conversione di Frozenset Digitare gli oggetti da elencare, tuple e set digita oggetti.

FSET = Frozenset ([1, 2, 3, 4])
Stampa (elenco (FSET))
stampa (tuple (fset))
stampa (set (fset))

Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:

[1, 2, 3, 4]
(1, 2, 3, 4)
1, 2, 3, 4

Casi d'uso surgeset

COME Frozenset Gli oggetti non sono altro che immutabili / immutabili set di set Python Oggetti, potresti chiederti della loro utilità poiché i set possono sempre essere usati al loro posto. Il caso d'uso più ovvio di Frozenset è per dichiarare oggetti set tipo con elementi univoci senza il rischio di cambiarli accidentalmente più avanti nel codice. Frozenset Gli oggetti di tipo possono essere utilizzati come tasti del dizionario mentre i set non possono essere utilizzati per lo stesso scopo. Poiché le congessette sono hashabili, possono essere utilizzate all'interno di set, mentre i set non possono essere inseriti in un altro set. Dai un'occhiata al codice qui sotto:

fset = Frozenset (4, 5)
S = 1, 2, fset
stampare (i)
S = 1, 2, 4, 5

Nella seconda affermazione, a Frozenset è stato aggiunto a un set durante la creazione. Nell'ultima istruzione, un oggetto di tipo set viene utilizzato all'interno di un altro set. Dopo aver eseguito il campione di codice sopra, è necessario ottenere il seguente output:

Frozenset (4, 5), 1, 2
Traceback (chiamata più recente per ultima):
File "Main.py ", riga 27, in
S = 1, 2, 4, 5
TypeEerror: tipo non povero: 'set'

Come puoi vedere nell'output, forzensette può essere aggiunto ad altri set. D'altra parte, l'aggiunta di un set a un altro set lancia un errore mentre i set accettano solo elementi di tipo hashable.

Conclusione

Frozenset fornire un modo per creare set immutabili. Accettano solo elementi unici e sono oggetti di tipo hashable in modo che possano essere utilizzati all'interno di altri oggetti Python che accettano solo oggetti hashable come loro figli.