Corso
Nel programming in Python, i dizionari sono estremamente versatili: ti permettono di archiviare dati in coppie chiave-valore per una gestione e un accesso efficienti. Se sei alle prime armi con Python, capire come manipolare questi dizionari è importante, perché migliorerà molto il modo in cui gestisci i dati in varie applicazioni. Che tu stia configurando impostazioni, gestendo dataset complessi o semplicemente memorizzando dati per un recupero rapido, i dizionari sono la risposta.
Una delle operazioni chiave di cui avrai spesso bisogno è aggiungere elementi a un dizionario. Questo articolo ti guiderà attraverso diversi metodi per aggiungere elementi a un dizionario in Python, dalla notazione di base con parentesi quadre a tecniche più avanzate come l’uso del metodo update() e dell’operatore di merge.
Se il concetto di dizionario in Python è nuovo per te, dai un'occhiata anche al nostro tutorial sui dizionari Python o al nostro tutorial sulla dictionary comprehension in Python, ottime risorse per imparare le coppie chiave-valore e altre idee fondamentali. Inoltre, potresti trovare utile il nostro cheat sheet Introduzione a Python come riferimento rapido se ti serve un ripasso sulla sintassi e sulle funzioni di Python.
Risposta rapida: come aggiungere a un dizionario in Python
Se cerchi una soluzione veloce per aggiungere elementi a un dizionario Python, il metodo update() è uno dei più comuni e semplici da usare:
# Initial dictionary with information for one person
people_info = {
'person_1': {
'name': 'Alice',
'city': 'New York'
}
}
# Updating Alice's information and adding another person
people_info.update({
'person_1': {
'name': 'Alice',
'city': 'Los Angeles', # Updated city
'age': 30 # Added new detail
},
'person_2': {
'name': 'Bob',
'city': 'San Francisco'
}
})
print(people_info)
# {
# 'person_1': {'name': 'Alice', 'city': 'Los Angeles', 'age': 30},
# 'person_2': {'name': 'Bob', 'city': 'San Francisco'}
# }
In questo esempio, il metodo update() aggiorna le informazioni di Alice sotto la chiave 'person_1', cambiando la sua city in 'Los Angeles' e aggiungendo un nuovo dettaglio age: 30. Aggiunge anche una nuova persona, Bob, sotto la chiave 'person_2'.
Capire i dizionari Python
Per cominciare, vediamo cosa sono i dizionari in Python e perché sono così importanti nella programmazione.
Che cos’è un dizionario Python?
Un dizionario in Python è una raccolta di coppie chiave-valore. Ogni chiave in un dizionario è univoca e mappa a un valore, che può essere di qualsiasi tipo di dato (come stringhe, interi, liste o anche altri dizionari). Questa struttura consente il recupero, l’aggiunta e la modifica dei dati. Ecco un semplice esempio di dizionario Python:
# Example of a dictionary
person = {
'name': 'Alice',
'age': 25,
'city': 'New York'
}
# Accessing a value
print(person['name']) # Output: Alice
In questo esempio, 'name', 'age' e 'city' sono chiavi, e 'Alice', 25 e 'New York' sono i rispettivi valori.
Struttura di un dizionario Python
I dizionari sono collezioni non ordinate, il che significa che gli elementi non hanno un ordine definito. Tuttavia, a partire da Python 3.7, i dizionari mantengono l’ordine di inserimento, caratteristica utile in diverse applicazioni. Ecco un esempio più dettagliato per illustrarne la struttura:
# A more complex dictionary
employee = {
'id': 101,
'name': 'John Doe',
'age': 30,
'department': 'Engineering',
'skills': ['Python', 'Machine Learning', 'Data Analysis'],
'address': {
'street': '123 Main St',
'city': 'San Francisco',
'state': 'CA',
'zip': '94105'
}
}
# Accessing nested data
print(employee['skills'][1]) # Output: Machine Learning
print(employee['address']['city']) # Output: San Francisco
In questo esempio, il dizionario employee contiene vari tipi di dati, inclusa una lista ('skills') e un altro dizionario ('address'). Questo dimostra come i dizionari possano essere usati per archiviare e organizzare strutture dati complesse.
Ora che abbiamo visto le basi, esploriamo più nel dettaglio i vari metodi per aggiungere elementi a un dizionario.
Metodi per aggiungere elementi a un dizionario in Python
Aggiungere elementi a un dizionario è un’operazione comune in Python e ci sono diversi metodi per farlo, ognuno con i propri casi d’uso e vantaggi. Vediamoli uno per uno.
Usare la notazione con parentesi quadre
Il modo più semplice per aggiungere una singola coppia chiave-valore a un dizionario è usare la notazione con parentesi quadre. Questo metodo è semplice ed efficiente per aggiungere elementi individuali. Ecco la sintassi:
dictionary[key] = value
Ecco un esempio che usa la notazione con parentesi quadre:
# Initialize a dictionary
my_dict = {'name': 'Alice', 'age': 25}
# Add a new key-value pair
my_dict['city'] = 'New York'
# Print the updated dictionary
print(my_dict)
# Output: {'name': 'Alice', 'age': 25, 'city': 'New York'}
Questo metodo aggiunge o aggiorna direttamente la coppia chiave-valore nel dizionario. Se la chiave esiste già, il suo valore verrà aggiornato.
Quando usi la notazione con parentesi quadre per aggiungere una chiave che è già presente nel dizionario, il valore associato a quella chiave viene aggiornato. Questo può essere sia una caratteristica utile sia una potenziale insidia, a seconda delle esigenze. Ecco un esempio che mostra come gestire le chiavi esistenti:
# Initialize a dictionary
my_dict = {'name': 'Alice', 'age': 25}
# Add a new key-value pair
my_dict['city'] = 'New York'
# Update an existing key-value pair
my_dict['age'] = 30
# Print the updated dictionary
print(my_dict)
# Output: {'name': 'Alice', 'age': 30, 'city': 'New York'}
In questo esempio, il valore della chiave 'age' viene aggiornato da 25 a 30.
Usare il metodo .update()
Il metodo .update() ti permette di aggiungere più coppie chiave-valore a un dizionario in un colpo solo. Può accettare un altro dizionario o un iterabile di coppie chiave-valore. Ecco la sintassi:
dictionary.update(other)
Ecco un esempio che usa il metodo .update():
# Initialize a dictionary
my_dict = {'name': 'Alice', 'age': 25}
# Add new key-value pairs using update()
my_dict.update({'city': 'New York', 'email': '[email protected]'})
# Print the updated dictionary
print(my_dict)
# Output: {'name': 'Alice', 'age': 25, 'city': 'New York', 'email': '[email protected]'}
Il metodo .update() può essere usato anche con un iterabile di coppie chiave-valore. Ecco un esempio:
# Initialize a dictionary
my_dict = {'name': 'Alice', 'age': 25}
# Add new key-value pairs using update() with an iterable
my_dict.update([('city', 'New York'), ('email', '[email protected]')])
# Print the updated dictionary
print(my_dict)
# Output: {'name': 'Alice', 'age': 25, 'city': 'New York', 'email': '[email protected]'}
Il metodo .update() è particolarmente utile quando devi aggiornare il dizionario con diverse nuove voci contemporaneamente. Se una chiave esiste già, il suo valore verrà aggiornato.
Usare il metodo .setdefault()
Il metodo .setdefault() viene usato per aggiungere una coppia chiave-valore a un dizionario solo se la chiave non esiste già. Se la chiave esiste, restituisce il valore esistente. Ecco la sintassi:
dictionary.setdefault(key, default_value)
Ecco un esempio che usa il metodo .setdefault():
# Initialize a dictionary
my_dict = {'name': 'Alice', 'age': 25}
# Use setdefault to add a new key-value pair
my_dict.setdefault('city', 'New York')
# Attempt to add an existing key
my_dict.setdefault('age', 30)
# Print the updated dictionary
print(my_dict)
# Output: {'name': 'Alice', 'age': 25, 'city': 'New York'}
In questo esempio, il metodo .setdefault() aggiunge la chiave 'city' con il valore 'New York' perché non era ancora presente nel dizionario. Quando si prova ad aggiungere la chiave 'age', non cambia il valore esistente 25 perché la chiave è già presente.
Questo approccio è adatto quando vuoi assicurarti che una chiave abbia un valore predefinito se non esiste. Può essere usato anche quando vuoi aggiungere nuove coppie chiave-valore senza sovrascrivere quelle esistenti.
Usare il costruttore dict()
Puoi anche creare un nuovo dizionario con ulteriori coppie chiave-valore usando il costruttore dict(). Questo approccio è utile quando vuoi creare un nuovo dizionario basato su uno esistente. Ecco la sintassi:
new_dict = dict(existing_dict, key1=value1, key2=value2)
Ecco un esempio che usa il costruttore dict():
# Initialize a dictionary
my_dict = {'name': 'Alice', 'age': 25}
# Create a new dictionary with additional key-value pairs
new_dict = dict(my_dict, city='New York', email='[email protected]')
# Print the new dictionary
print(new_dict)
# Output: {'name': 'Alice', 'age': 25, 'city': 'New York', 'email': '[email protected]'}
In questo esempio, il costruttore dict() viene usato per creare un nuovo dizionario new_dict che include le coppie chiave-valore originali di my_dict e le coppie aggiuntive 'city': 'New York' e 'email': '[email protected]'.
Questo approccio è utile quando vuoi creare un nuovo dizionario combinando dizionari esistenti e ulteriori coppie chiave-valore. È utile anche quando devi creare un nuovo dizionario con alcune modifiche mantenendo invariato quello originale.
Tabella di confronto
Ecco una tabella di riferimento rapido per i metodi trattati nel nostro tutorial:
| Metodo | Caso d’uso | Esempio |
|---|---|---|
| Parentesi quadre | Singola coppia chiave-valore | dict[key] = value |
| .update() | Più coppie chiave-valore | dict.update({key1: value1, key2: value2}) |
| .setdefault() | Aggiunge la coppia solo se la chiave non esiste | dict.setdefault(key, default_value) |
| Costruttore dict() | Crea un nuovo dizionario o aggiorna un esistente con coppie aggiuntive | new_dict = dict(existing_dict, key1=value1, key2=value2) |
Tecniche avanzate per aggiungere a dizionari in Python
Capire le basi della manipolazione dei dizionari è essenziale, ma per padroneggiarli davvero in Python è importante esplorare alcune tecniche avanzate. Questi metodi miglioreranno la tua capacità di gestire e manipolare i dizionari in scenari più complessi.
Aggiungere ad altre liste all’interno di un dizionario
Spesso i dizionari sono usati per memorizzare liste come valori. Aggiungere elementi a queste liste richiede un approccio leggermente diverso. Ecco come puoi farlo usando .append():
# Initialize a dictionary with a list as a value
dictionary_w_list = {'fruits': ['apple', 'banana']}
# Append an element to the list within the dictionary
dictionary_w_list['fruits'].append('cherry')
# Print the updated dictionary
print(dictionary_w_list)
# Output: {'fruits': ['apple', 'banana', 'cherry']}
In questo esempio partiamo da dictionary_w_list dove la chiave 'fruits' mappa a una lista ['apple', 'banana']. Usando il metodo .append() aggiungiamo 'cherry' alla lista. Questa tecnica è particolarmente utile quando gestisci collezioni di elementi all’interno di un unico dizionario.
Combinare dizionari con l’operatore di merge
Python 3.9 ha introdotto l’operatore di merge (|) per combinare dizionari. Questo operatore ti permette di unire due dizionari in un nuovo dizionario con facilità:
# Initialize two dictionaries
first_dictionary = {'name': 'Alice', 'age': 25}
second_dictionary = {'city': 'New York', 'email': '[email protected]'}
# Merge the dictionaries using the merge operator
merged_dictionary = first_dictionary | second_dictionary
# Print the merged dictionary
print(merged_dictionary)
# Output: {'name': 'Alice', 'age': 25, 'city': 'New York', 'email': '[email protected]'}
In questo esempio, first_dictionary e second_dictionary vengono uniti in un nuovo dizionario merged_dictionary. L’operatore di merge (|) combina le coppie chiave-valore di entrambi i dizionari, rendendolo un metodo rapido e comodo per fonderli.
Usare l’operatore di aggiornamento
Per aggiornamenti in place, Python 3.9 ha introdotto anche l’operatore di aggiornamento |=. Questo operatore ti permette di aggiornare il dizionario originale con le coppie chiave-valore di un altro dizionario.
# Initialize two dictionaries
first_dictionary = {'name': 'Alice', 'age': 25}
second_dictionary = {'city': 'New York', 'email': '[email protected]'}
# Update dict1 in-place using the update |= operator
first_dictionary |= second_dictionary
# Print the updated dictionary
print(first_dictionary)
# Output: {'name': 'Alice', 'age': 25, 'city': 'New York', 'email': '[email protected]'}
Qui, l’operatore di aggiornamento |= aggiorna first_dictionary con i contenuti di second_dictionary in place. In pratica, first_dictionary viene modificato direttamente. Questo metodo è particolarmente utile quando devi aggiornare un dizionario esistente senza crearne uno nuovo.
Conclusione
In questo articolo abbiamo visto i dizionari Python e i metodi per aggiungere coppie chiave-valore. Siamo partiti da tecniche fondamentali come la notazione con parentesi quadre e il metodo .update(), essenziali per aggiornamenti rapidi e diretti. Siamo poi passati a tecniche più avanzate, tra cui l’aggiunta a liste all’interno dei dizionari, il merge dei dizionari con l’operatore di merge (|) e gli aggiornamenti in place con l’operatore di aggiornamento |=. Questi metodi offrono strumenti potenti per gestire strutture dati complesse ed eseguire operazioni efficienti.
Ecco alcune delle nostre risorse per far progredire le tue competenze in Python. Puoi iniziare dal corso Introduction to Python, un eccellente punto di partenza perché fornisce solide basi in Python con un focus sulle applicazioni nella data science. Il percorso di abilità Python Programming offre inoltre un curriculum completo che ti porta da principiante a programmatore competente.
Il nostro percorso di carriera Python Developer è pensato anche per chi vuole approfondire la programmazione in Python. Copre in modo esteso costrutti e tecniche di programmazione più complessi.
Professionista dei dati e scrittore con esperienza, appassionato nell’aiutare aspiranti esperti nel mondo dei dati.
Domande frequenti
Come posso aggiungere una nuova coppia chiave-valore a un dizionario Python?
Puoi aggiungere una nuova coppia chiave-valore a un dizionario Python usando la notazione con parentesi quadre, ad esempio dictionary[key] = value. Questo metodo aggiorna il dizionario in place.
Che cos’è il metodo .update() nei dizionari Python e come si usa?
Il metodo .update() serve ad aggiungere più coppie chiave-valore a un dizionario. Può accettare un altro dizionario o un iterabile di coppie chiave-valore, aggiornando il dizionario esistente.
Qual è la differenza tra il metodo .update() e l’operatore di merge (|) per combinare dizionari in Python?
Il metodo .update() modifica il dizionario esistente in place aggiungendo coppie chiave-valore da un altro dizionario, sovrascrivendo eventualmente le chiavi esistenti. L’operatore di merge crea un nuovo dizionario contenente gli elementi di entrambi i dizionari, lasciando invariati i dizionari originali.


