lettura facile

Il metodo fromkeys in Python

Il metodo fromkeys() in Python ti permette di creare un dizionario indicando le chiavi e un valore comune per tutte queste chiavi.

dict.fromkeys(seq[, value])

E' un metodo statico della classe dict e ha due argomenti

  • seq è la sequenza delle chiavi del nuovo dizionario
  • value è il valore comune per tutte le chiavi. E' opzionale, se non lo specifichi di default è None.

Questo metodo è molto utile quando vuoi inizializzare un dizionario con chiavi note e un valore comune.

In altre parole, tutte le chiavi condivideranno lo stesso valore o riferimento.

A cosa serve? Puo inizializzare un dizionario per il conteggio o la raccolta di dati oppure creare rapidamente dei dizionari con valori predefiniti per testing o prototipazione.

Ecco un esempio pratico.

Definisci una lista di chiavi.

chiavi = ['x', 'y', 'z']

Poi crea un dizionario a partire da queste chiavi usando il metodo fromkeys()

dizionario = dict.fromkeys(chiavi)

Adesso stampa il dizionario.

print(dizionario)

Poiché non hai indicato il valore nel secondo parametro del metodo fromkeys(), a ogni chiave del dizionario è associato il valore None.

{'x': None, 'y': None, 'z': None}

Ti faccio un altro esempio pratico.

Considera la lista precedente di chiavi.

chiavi = ['x', 'y', 'z']

Ora crea un dizionario con la funzione fromkeys() indicando il valore 1 come secondo argomento.

dizionario2 = dict.fromkeys(chiavi, 1)

Stampa il contenuto del nuovo dizionario.

print(dizionario2)

Il dizionario ha le stesse chiavi ma questa volta a ogni chiave è associato il valore 1.

{'a': 1, 'b': 1, 'c': 1}

Sono due semplici esempi che spiegano il funzionamento del metodo fromkeys() più di mille parole.

Fai attenzione se il valore è un oggetto mutabile

Quando usi un oggetto mutabile come valore, ad esempio una lista, ogni chiave punterà allo stesso oggetto.

Quindi, se modifichi la lista per una chiave del dizionario, indirettamente modifichi la lista per tutte le chiavi.

Ad esempio, definisci una lista per le chiavi del dizionario.

chiavi = ['alfa', 'beta']

Ora definisci come valore una lista vuota [ ].

valore = []

Crea il dizionario usando il metodo fromkeys() usando le due liste precedenti.

dizionario = dict.fromkeys(chiavi, valore)

A questo punto modifica la chiave "alfa" del dizionario.

dizionario['alfa'].append(1)

Adesso la lista che hai indicato come valore non è più vuota, contiene un elemento, il numero 1.

Stampa il dizionario.

print(dizionario)

Entrambi i valori delle chiavi sono cambiati, perché entrambe hanno lo stesso riferimento, ovvero puntano allo stessa lista che ora contiene il valore 1.

{'alfa': [1], 'beta': [1]}

In conclusione, fromkeys è uno strumento estremamente utile in Python per la creazione rapida e efficiente di dizionari con valori predefiniti.

Tuttavia, è essenziale comprendere bene la sua natura, specialmente quando si lavora con valori mutabili, per evitare risultati inaspettati.

 




Se qualcosa non ti è chiaro, scrivi la tua domanda nei commenti.




FacebookTwitterLinkedinLinkedin