Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2023-24 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2023-24 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

Inversione chiave valore in un dizionario

S
Simone Giovagnoni (960 points)
4 4 6
in Programmare in Python by (960 points)
Salve, volevo sapere quale potrebbe essere un metodo per invertire le chiavi con i rispettivi valori all'interno di un dizionario?

es. {'a' :1}  - - > {1:'a'}

Grazie
697 views
closed

4 Answers

Best answer
lcrainic (3320 points)
2 4 25
by (3.3k points)
selected by
Ciao tempo fa mi era venuto in mente lo stesso dubbio e cercando su Stack ho trovato questo thread che mi ha aiutato molto a capire un po'.

https://stackoverflow.com/questions/483666/reverse-invert-a-dictionary-mapping
O
Oakandrew (6400 points)
7 27 64
by (6.4k points)

https://docs.python.org/3/tutorial/datastructures.html:

It is best to think of a dictionary as a set of key: value pairs, with the requirement that the keys are unique (within one dictionary).
AdSum (16290 points)
9 20 134
by (16.3k points)
Non so se ci sono metodi più veloci, ma l'unico che conosco è scorrere la lista chiavi/valori e inserire in un secondo dizionario i valori nel formato voluto. Nel tuo caso posizionare il valore del diz1 nel diz2 come chiave e la chiave del diz1 come valore nel diz2. Quindi in soldoni usa in ciclo per scorrere il dizionario.
a
alessandro.bellia (930 points)
0 2 12
by (930 points)
Dovrebbe assicurarsi che i valori non si ripetano mai prima però, dato che le key non possono ripetersi
AdSum (16290 points)
9 20 134
by (16.3k points)
non è un problema, basta stare attenti a non sovrascrivere senza aggiornare correttamente i valori
Loriv3 (7970 points)
13 21 84
by (8.0k points)
Stai attento ai consigli che ti danno, sono un buon punto di partenza ma se trovi chiavi con valore uguale ti esce un errore in console, io proverei anche ad usare il nero get() pensi possa tornare molto utile