English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Corso di base Python

Controllo dei flussi Python

Funzione in Python

Tipi di dati in Python

Operazioni di file Python

Oggetti e classi Python

Data e ora Python

Conoscenze avanzate Python

Manuale di riferimento Python

Utilizzo e esempio del metodo fromkeys() di dizionario Python

Metodi di dizionario di Python

Il metodo fromkeys() crea un nuovo dizionario basato sulla sequenza di elementi forniti, con i valori forniti dall'utente.

La sintassi del metodo fromkeys() è:

dictionary.fromkeys(sequence[, value])

Parametri di fromkeys()

Il metodo fromkeys() accetta due parametri:

  • sequence -Sequenza di elementi utilizzata come chiavi del nuovo dizionario

  • -Valore (opzionale) -Valore impostato per ogni elemento del dizionario

Restituzione di fromkeys()

Il metodo fromkeys() restituisce un nuovo dizionario che ha la sequenza di elementi forniti come chiavi del dizionario.

Se è impostato il parametro value, ogni elemento del nuovo dizionario creato verrà impostato con il valore fornito.

Esempio 1: Creazione di dizionario da sequenza di chiavi

# Chiavi di vocale
keys = {'a', 'e', 'i', 'o', 'u'}
vowels = dict.fromkeys(keys)
print(vowels)

Quando si esegue il programma, l'output è:

{'a': None, 'u': None, 'o': None, 'e': None, 'i': None}

Esempio 2: Creazione di dizionario da sequenza di chiavi con valori

# Chiavi di vocale
keys = {'a', 'e', 'i', 'o', 'u'}
value = 'vowel'
vowels = dict.fromkeys(keys, value)
print(vowels)

Quando si esegue il programma, l'output è:

{'a': 'vowel', 'u': 'vowel', 'o': 'vowel', 'e': 'vowel', 'i': 'vowel'}

Esempio 3: Creazione di dizionario da lista di oggetti mutabili

# Chiavi di vocale
keys = {'a', 'e', 'i', 'o', 'u'}
value = [1]
vowels = dict.fromkeys(keys, value)
print(vowels)
# Valore aggiornato
value.append(2)
print(vowels)

Quando si esegue il programma, l'output è:

{'a': [1], 'u': [1], 'o': [1], 'e': [1], 'i': [1]}
{'a': [1, 2], 'u': [1, 2], 'o': [1, 2], 'e': [1, 2], 'i': [1, 2]}

Se il value fornito è un oggetto mutabile (il cui valore può essere modificato), comelist,dictionarySe, quindi, si modifica un oggetto mutabile, ogni elemento della sequenza viene aggiornato.

Questo perché, per ogni elemento, viene assegnato un riferimento all'oggetto stesso (che punta all'oggetto nella memoria)

Per evitare questo problema, usiamo la comprensione del dizionario.

# Chiavi di vocale
keys = {'a', 'e', 'i', 'o', 'u'}
value = [1]
vowels = { key: list(value) for key in keys }
# Puoi anche usare { key: value[:] for key in keys }
print(vowels)
# Valore aggiornato
value.append(2)
print(vowels)

Quando si esegue il programma, l'output è:

{'a': [1], 'u': [1], 'o': [1], 'e': [1], 'i': [1]}
{'a': [1], 'u': [1], 'o': [1], 'e': [1], 'i': [1]}

In questo caso, per ogni chiave in keys, viene creata una nuova lista da value e assegnata a essa.

In sostanza, value non viene assegnato all'elemento, ma viene creato un nuovo elenco e poi assegnato a ciascun elemento del dizionario.

Metodi di dizionario di Python