CodeGym /Corso Java /Python SELF IT /Lavorare con il dizionario

Lavorare con il dizionario

Python SELF IT
Livello 11 , Lezione 2
Disponibile

2.1 Ottenere il numero di elementi

In Python per ottenere il numero di elementi in un dizionario si usa la funzione len() incorporata. Questa funzione restituisce il numero di coppie chiave-valore nel dizionario. Oppure il numero di chiavi, se preferisci.

Ecco un esempio di utilizzo della funzione:


person = {"name": "Alice", "age": 25, "city": "New York"}
num_elements = len(person)
print(num_elements)  # Output: 3 

In questo esempio abbiamo un dizionario person con tre elementi. La funzione len(person) restituisce il numero di elementi nel dizionario, che è 3.

Controllare se un dizionario è vuoto

Puoi usare la funzione len() per verificare se un dizionario è vuoto. Questo è utile in condizioni e cicli.


empty_dict = {}
print(len(empty_dict))  # Output: 0

person = {"name": "Alice", "age": 25, "city": "New York"}

if len(person) > 0:
    print("Il dizionario non è vuoto")
else:
    print("Il dizionario è vuoto")

Dizionario con strutture annidate

La funzione len() considera solo il numero di chiavi di primo livello, indipendentemente da ciò che è contenuto come valore.


complex_dict = {
    name: "Alice",
    details: {
        age: 25,
        city: "New York"
    },
    hobbies: ["reading", "traveling"]
}
print(len(complex_dict))  # Output: 3

In questo esempio abbiamo un dizionario con strutture di dati annidate. len(complex_dict) restituisce 3, perché al livello superiore ci sono tre chiavi: "name", "details" e "hobbies".

len() ignora le chiavi all'interno delle strutture di dati annidate, come "age" e "city" all'interno del dizionario "details", perché len() conta solo le chiavi di primo livello. Se hai bisogno di contare il numero totale di elementi, incluse le strutture annidate, dovrai usare un metodo ricorsivo. Ma non oggi.

2.2 Determinare il tipo

La funzione type() in Python è usata per determinare il tipo di un oggetto. Quando si lavora con i dizionari type() permette di determinare che l'oggetto è un'istanza della classe dict. Questo può essere utile in vari scenari, ad esempio, per verificare il tipo di dati prima di eseguire operazioni sul dizionario.

Esempi di utilizzo:

Verifica del tipo di oggetto


person = {"name": "Alice", "age": 25, "city": "New York"}
print(type(person))  # Output: <class 'dict'>

In questo esempio creiamo un dizionario person e usiamo type per determinare il suo tipo. La funzione restituisce <class 'dict'>, indicando che person è un dizionario.

Verifica condizionale del tipo di dati

La funzione type() può essere usata per verificare il tipo di dati in espressioni condizionali, permettendo di eseguire operazioni specifiche solo per oggetti di tipo dict.


data = {"name": "Alice", "age": 25, "city": "New York"}

if type(data) is dict:
    print("È un dizionario.")
else:
    print("Non è un dizionario.")

In questo esempio l'espressione condizionale verifica se data è un dizionario e esegue il codice corrispondente.

La funzione type() può essere utilizzata all'interno di funzioni personalizzate per verificare il tipo di argomenti, garantendo che la funzione gestisca il corretto tipo di dati.

Esempio:


def process_data(data):
    if type(data) is dict:
        print("Elaborazione del dizionario...")
        # Esecuzione delle operazioni sul dizionario
    else:
        print("Errore: è atteso un dizionario.")

data = {"name": "Alice", "age": 25, "city": "New York"}
process_data(data)

In questo esempio la funzione process_data verifica se l'argomento data è un dizionario e esegue operazioni appropriate solo per i dizionari.

2.3 Ottenere un elemento

Lavorare con gli elementi del dizionario è simile a lavorare con una lista o una tupla — usiamo anche qui le parentesi quadre. Tuttavia, invece dell'indice dell'elemento nelle parentesi, bisogna indicare la chiave. La chiave di un dizionario può essere qualsiasi elemento immutabile: stringa, numero o, ad esempio, una tupla.


dizionario[chiave]

Esempio:


person = {"name": "Alice", "age": 25, "city": "New York"}
name = person["name"]
print(name)  # Output: Alice

Se la chiave non esiste, si verificherà un errore:


person = {"name": "Alice", "age": 25, "city": "New York"}
person["country"]  # si verificherà un errore KeyError: 'country'

Metodo get(key, def_value)

Il metodo get() permette di ottenere in modo sicuro un valore tramite la chiave. Se la chiave non esiste, il metodo restituisce un valore predefinito (None, se il valore predefinito non è specificato). Questo previene l'insorgere dell'eccezione KeyError.


person = {"name": "Alice", "age": 25, "city": "New York"}
age = person.get("age")
print(age)  # Output: 25

country = person.get("country", "USA")
print(country)  # Output: USA

Il secondo parametro nel metodo get() può essere un valore che si desidera restituire, se la chiave richiesta non è presente nel dizionario.

Il metodo setdefault() funziona in modo simile al metodo get(), ma se la chiave non esiste nel dizionario, il metodo non solo restituisce il valore di default, ma aggiunge al dizionario un nuovo paio chiave: valore.


person = {"name": "Alice", "age": 25}
city = person.setdefault("city", "New York")
print(city)  # Output: New York
print(person)  # Output: {'name': 'Alice', 'age': 25, 'city': 'New York'}
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION