items Python

Il metodo items() sui dizionari in Python è utilizzato per restituire l’elenco con tutte le chiavi del dizionario con valori.

Questo metodo non accetta parametri, dunque la sintassi è molto semplice: d.items(), dove d rappresenta il dizionario.

Il metodo items(), dunque, restituisce un oggetto che mostra un elenco di coppie di tuple (chiave, valore) di un dizionario.

items Python – primo esempio

In questo primo semplice esempio stampiamo le coppie di tuple (chiave, valore) sul dizionario student, che contiene i dati di uno studente.


student = {
'name': 'Cristina', 'age': 20, 'mail': 'info@codingcreativo.it'
}

print(student.items())

L’output sarà rappresentato da questo oggetto che contiene le coppie di tuple:

dict_items([('name', 'Cristina'), ('age', 20), ('mail', 'info@codingcreativo.it')])

L’ordine potrebbe anche essere diverso.

items Python – secondo esempio

Proviamo adesso con un dizionario i cui valori sono a loro volta dei dizionari. Il dizionario students che contiene i dati di 2 studenti.

Vogliamo utilizzare il metodo items() di Python su tutto il dizionario. Quale sarà il risultato?


students = {
'1': {'name' : 'Cristina', 'age': 29, 'mail': 'info@codingcreativo.it'},
'2': {'name' : 'Tom', 'age': 23, 'mail': 'info@prova.it'}
}

print(students.items())

L’output generato sarà questo:

dict_items([('1', {'name': 'Cristina', 'age': 29, 'mail': 'info@codingcreativo.it'}), ('2', {'name': 'Tom', 'age': 23, 'mail': 'info@prova.it'})])

Provate il seguente codice nel compiler online che trovate al seguente link: compiler Python online.

items Python – terzo esempio

Adesso vogliamo utilizzare il metodo items sui dizionari interni. Come possiamo fare?

Per poter utilizzare il metodo items, a tale scopo, dobbiamo dapprima selezionare la chiave di cui vogliamo ottenere le coppie di tuple. Poi possiamo applicare il metodo.

Ecco dunque una possibile soluzione all’algoritmo proposto:


students = {
'1': {'name' : 'Cristina', 'age': 29, 'mail': 'info@codingcreativo.it'},
'2': {'name' : 'Tom', 'age': 23, 'mail': 'info@prova.it'}
}

student = students.get('1', {}).items()
print(student)

In questo caso l’output generato sarà questo:

dict_items([('name', 'Cristina'), ('age', 29), ('mail', 'info@codingcreativo.it')])

Questo se i dizionari sono uguali, ma se i valori delle chiavi 1 e 2 sono rappresentati da dizionari diversi?



''' 
Esempio con chiavi diverse
'''
students = {
'1': {'name' : 'Cristina', 'age': 29, 'mail': 'info@codingcreativo.it'},
'2': {'exam' : 'English', 'vote': 30}
}

for student in students.values():
  print(student.items())

In questo caso l’output sarà il seguente:

dict_items([('name', 'Cristina'), ('age', 29), ('mail', 'info@codingcreativo.it')])
dict_items([('exam', 'English'), ('vote', 30)])

Conclusione

In questa lezione abbiamo realizzato alcuni semplici esempi di utilizzo del metodo items() in Python sui dizionari. Nella prossima lezioni vedremo cosa succede se eliminiamo o aggiungiamo elementi ad un dizionario.

Alcuni link utili

Indice tutorial sul linguaggio Python

1 – Introduzione al linguaggio Python

2 – Le variabili

3 – Operatori aritmetici e di assegnazione

4 – Stringhe

5 – Casting

6 – Input e print

7 – Primi esercizi in Python

8 – Errori in Python

9 – Script Python

10 – Scambio di variabili

11 – Modulo math

Continua la lettura su: https://www.codingcreativo.it/items-python/ Autore del post: Coding Creativo Fonte: https://www.codingcreativo.it

Articoli Correlati

get Python

In questa lezione studieremo il metodo get() di Python sui dizionari.

Il metodo Python get() restituisce il valore della chiave specificata, se presente nel dizionario. Se la chiave non esiste restituirà None (se get() viene utilizzato con un solo argomento).

La sintassi è la seguente:

d.get(key, value)

Dove:

key – rappresenta il nome della chiave dell’elemento da cui vogliamo restituire il valore

value – opzionale, è il valore da restituire se la chiave non viene trovata. Di default è None.

Esempio di utilizzo di get in Python

Vediamo un esempio di utilizzo molto semplice. Supponiamo di avere il seguente dizionario:

student = {‘name’: ‘Cristina’, ‘age’: 20, ‘mail’: ‘info@codingcreativo.it’}

Dopo utilizziamo il metodo get su questo dizionario per stampare il nome dello studente.

print(student.get(‘name’))

Facciamo adesso la prova a stampare una chiave che non esiste:

print(student.get(‘surname’))

Se provate il codice nel compiler online che trovate al seguente link: https://www.codingcreativo.it/python-compiler-online/

potete notare che verrà restituito None.

Potremmo stampare un messaggio differente, come nel seguente esempio:

print(student.get(‘surname’, ‘Il cognome non è stato trovato’))

Utilizzo del metodo get innestato in Python

Facciamo adesso un altro esempio di utilizzo del metodo get sui dizionari in Python. In questo esempio utilizzeremo un dizionari dove la chiave è numerica mentre il valore è rappresentato da un altro dizionario.

Selezioniamo il nome di un solo studente.

students = {‘1’: {‘name’ : ‘Cristina’, ‘age’: 29, ‘mail’: ‘info@codingcreativo.it’},’2′: {‘name’ : ‘Tom’, ‘age’: 23, ‘mail’: ‘info@prova.it’}}

student = students.get(‘1’, {}).get(‘name’)
print(student)

Adesso stampiamo tutti i nomi degli studenti con un ciclo, utilizzando sempre il metodo get() appena studiato:

students = {‘1’: {‘name’ : ‘Cristina’, ‘age’: 29, ‘mail’: ‘info@codingcreativo.it’},’2′: {‘name’ : ‘Tom’, ‘age’: 23, ‘mail’: ‘info@prova.it’}}

for student in students.values():
print(student.get(‘name’))

E se volessimo stampare tutto? Potremmo utilizzare 2 cicli for, come nell’esempio sotto:

students = {‘1’: {‘name’ : ‘Cristina’, ‘age’: 29, ‘mail’: ‘info@codingcreativo.it’},’2′: {‘name’ : ‘Tom’, ‘age’: 23, ‘mail’: ‘info@prova.it’}}

for student_id, student_detail in students.items():
print(“nStudent Key:”, student_id)

for key in student_detail:
print(key + ‘:’, student_detail[key])

Provate queste soluzioni nel compilatore online che troverete a questo link: compiler python online. Il link si aprirà in una nuova pagina in modo da permetterti di scrivere il codice.

Conclusioni

In questa lezione abbiamo studiato il metodo get di Python e abbiamo visto come si può applicare ai nostri esercizi sui dizionari. Nelle prossime lezioni non mancheranno tanti altri esempi di utilizzo di questo metodo e di tanti altri.

Alcuni link utili

Indice tutorial sul linguaggio Python

1 – Introduzione al linguaggio Python

2 – Le variabili

3 – Operatori aritmetici e di assegnazione

4 – Stringhe

5 – Casting

6 – Input e print

7 – Primi esercizi in Python

8 – Errori in Python

9 – Script Python

10 – Scambio di variabili

11 – Modulo math

Ordinare un dizionario in Python

Si può ordinare un dizionario in Python per chiave o per valore. Facciamo alcuni esempi pratici di ordinamento in Python in base alle nostre esigenze.

Tutti gli esempi proposti possono essere provati nel compiler online che troverete al seguente link: Python compiler online.

Primo esempio – Ordinare un dizionario in Python per chiave

In questo primo esempio dapprima creiamo un dizionario in Python. Abbiamo poi detto di ordinare per chiave, quindi dobbiamo decidere se seguire un ordine crescente o decrescente, infine dobbiamo richiamare la funzione sul dizionario.

Implementiamo, dunque, una prima soluzione. Per ordinare in senso crescente possiamo utilizzare la funzione sorted sul nostro dizionario, in questo modo:

student = {
“name”: ‘Cristina’,
“age”: ’29’,
“hobby”: ‘swim’,
“mail”: ‘codingcreatico@gmail.com’,
“passion”: ‘coding’
}

for key in sorted(student):
print(key, student[key])

E se vogliamo un ordinamento decrescente? Basterà semplicemente utilizzare il parametro reverse della funzione sorted, impostandolo a False.

Ecco un esempio di dizionario ordinato in senso decrescente in Python:

student = {
“name”: ‘Cristina’,
“age”: ’29’,
“hobby”: ‘swim’,
“mail”: ‘codingcreatico@gmail.com’,
“passion”: ‘coding’
}

for key in sorted(student, reverse = True):
print(key, student[key])

Secondo esempio – Ordinare un dizionario in Python per chiave

Cerchiamo adesso una seconda soluzione al problema proposto.

Innanzitutto potremmo ad esempio pensare di utilizzare il metodo keys() sul dizionario, ma cosa succede?

Proviamolo, dunque, con un esempio:

student = {
“name”: ‘Cristina’,
“age”: ’29’,
“hobby”: ‘swim’,
“mail”: ‘codingcreatico@gmail.com’,
“passion”: ‘coding’
}

sorted_key = sorted(student.keys())

for element in sorted_key:
print(element)

In questo caso si avrà il seguente output:

age
hobby
mail
name
passion

Ovvero avremo le sole chiavi ordinate in senso crescente.

Quindi, anche se uso il metodo dict() non riuscirò in questo modo ad ordinare un dizionario in Python.

E se invece proviamo ad utilizzare il metodo values()?

student = {
“name”: ‘Cristina’,
“age”: ’29’,
“hobby”: ‘swim’,
“mail”: ‘codingcreatico@gmail.com’,
“passion”: ‘coding’
}

sorted_values = sorted(student.values())

for element in sorted_values:
print(element)

Il risultato sarà il seguente:

29
Cristina
coding
codingcreatico@gmail.com
swim

Quindi se voglio ordinare un dizionario in Python per chiave cosa devo fare? Quale altra soluzione posso pensare?

Possiamo, ad esempio, utilizzare il metodo items(), che abbiamo studiato in questa lezione: items Python.

Ricordiamo inoltre che questo metodo è utilizzato per restituire l’elenco con tutte le chiavi del dizionario con i suoi rispettivi valori.

Dopo, possiamo nuovamente riconvertire le coppie di tuple in un dizionario utilizzando il metodo dict().

Ecco una possibile soluzione al nostro algoritmo:

student = {
“name”: ‘Cristina’,
“age”: ’29’,
“hobby”: ‘swim’,
“mail”: ‘codingcreatico@gmail.com’,
“passion”: ‘coding’
}

sorted_student = sorted(student.items())
sorted_student_dict = dict(sorted(student.items()))

print(sorted_student_dict)

for element in sorted_student_dict:
print(element, ‘: ‘, sorted_student_dict[element])

Così abbiamo ottenuto tutte le coppie di tuple chiave, valori ordinate in senso crescente. Poi, convertiamolo in dizionario con il metodo dict(). Così riusciamo ad ordinare il dizionario in Python per chiave.

Utilizziamo una funzione per poterla poi utilizzare per creare l’ordinamento su più dizionari:

student = {
“name”: ‘Cristina’,
“age”: ’29’,
“hobby”: ‘swim’,
“mail”: ‘codingcreatico@gmail.com’,
“passion”: ‘coding’
}

def sort_dict(d):
return dict(sorted(student.items()))

print(sort_dict(student))

Ordinare un dizionario in Python per chiave in senso decrescente

Questa volta utilizziamo il parametro reverse di sorted per creare un ordinamento decrescente sui dizionari. Infatti impostandolo a True l’ordinamento sarà decrescente. Di default il suo valore è False.

student = {
“name”: ‘Cristina’,
“age”: ’29’,
“hobby”: ‘swim’,
“mail”: ‘codingcreatico@gmail.com’,
“passion”: ‘coding’
}

def sort_dict(d):
return dict(sorted(student.items(), reverse = True))

print(sort_dict(student))

Per completezza potremmo passare questo parametro anche alla funzione, in questo modo:

student = {
“name”: ‘Cristina’,
“age”: ’29’,
“hobby”: ‘swim’,
“mail”: ‘codingcreatico@gmail.com’,
“passion”: ‘coding’
}

def sort_dict(d, rev):
return dict(sorted(student.items(), reverse = rev))

print(sort_dict(student, True))

Conclusione

In questa lezione abbiamo affrontato alcuni interessanti esempi su come ordinare un dizionario in Python per chiave, in ordine crescente e decrescente.

Alcuni link utili

Indice tutorial sul linguaggio Python

1 – Introduzione al linguaggio Python

2 – Le variabili

3 – Operatori aritmetici e di assegnazione

4 – Stringhe

5 – Casting

6 – Input e print

7 – Primi esercizi in Python

8 – Errori in Python

9 – Script Python

10 – Scambio di variabili

11 – Modulo math

Vuoi rimanere aggiornato sulle nuove tecnologie per la Didattica e ricevere suggerimenti per attività da fare in classe?

Sei un docente?

soloscuola.it la prima piattaforma
No Profit gestita dai

Volontari Per la Didattica
per il mondo della Scuola. 

 

Tutti i servizi sono gratuiti. 

Associazione di Volontariato Koinokalo Aps

Ente del Terzo Settore iscritta dal 2014
Tutte le attività sono finanziate con il 5X1000