[Python] Dizionari: ottenere la chiave, dal valore.

Valerio Maggio valerio.maggio a gmail.com
Ven 4 Dic 2020 11:23:38 CET


On Fri, 4 Dec 2020 at 10:08, Gabriele Battaglia <iz4apu a libero.it> wrote:

> Ciao.
>

Ciao Gabriele


> Se cerco la chiave conoscendo il valore, esiste una funzione da
> applicare sul dizionario che me la fornisca direttamente, invece di
> dover iterare con un for su tutti i valori?
>

Non esiste questa funzione che io sappia, ma se ci pensi è un po'
controintuitivo, perché staresti utilizzando il dizionario al "contrario".
Proprio per questo, tutte le volte che mi è capitato un caso simile, sono
ricorso alla versione flippata del dizionario - in cui le chiavi diventano
valori, e viceversa.

>>> flipped_dict = {v:k for k, v in original_dict.items() }

Se invece dovesse capitare che più valori nel tuo dizionario corrispondano
alla stessa chiave, userei un setdefault di sicurezza

>>> flipped_dict = dict()
>>> for k, v in original_dict.items():
...     rd.setdefault(v, [])
...     rd[v].append(k)

*La versione compatta singola riga usando dict-comprehension è lasciata
come esercizio al lettore :D*
Scherzo! :D

Valerio
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20201204/4dd2e5cd/attachment-0001.html>


Maggiori informazioni sulla lista Python