<div dir="ltr">scusa items() e non iteritems() che é python2 ... sorry ma sono in una fare di migrazione progetto da py2 a py3 e sto impazzendo :/</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Dec 4, 2020 at 11:25 AM Ernesto Arbitrio <<a href="mailto:ernesto.arbitrio@gmail.com">ernesto.arbitrio@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">nel caso di valori univoci puoi invertire il dizionario:<br><br>mydict2 = dict(map(reversed, mydict.items()))<br>e quindi<br>mydict2[val]<br><br>altrimenti non hai alternative secondo me ... devi iterare (o usare librerie esterne tipo Pandas)<br><br>quindi scriverti qualcosa che usi una list <span style="color:rgb(36,39,41);font-family:Arial,"Helvetica Neue",Helvetica,sans-serif">comprehension<br></span><pre style="white-space:pre-wrap;font-size:13px;margin-top:0px;padding:12px;border:0px;font-variant-numeric:inherit;font-variant-east-asian:inherit;font-stretch:inherit;line-height:1.30769;font-family:Consolas,Menlo,Monaco,"Lucida Console","Liberation Mono","DejaVu Sans Mono","Bitstream Vera Sans Mono","Courier New",monospace,sans-serif;vertical-align:baseline;box-sizing:inherit;width:auto;max-height:600px;overflow:auto;border-radius:5px"><code style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;box-sizing:inherit;background-color:transparent;white-space:inherit">[k <span style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;box-sizing:inherit">for</span> k, v <span style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;box-sizing:inherit">in</span> d.iteritems() <span style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;box-sizing:inherit">if</span> v == value]</code></pre></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Dec 4, 2020 at 11:23 AM Valerio Maggio <<a href="mailto:valerio.maggio@gmail.com" target="_blank">valerio.maggio@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr">On Fri, 4 Dec 2020 at 10:08, Gabriele Battaglia <<a href="mailto:iz4apu@libero.it" target="_blank">iz4apu@libero.it</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Ciao.<br></blockquote><div><br></div><div>Ciao Gabriele</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Se cerco la chiave conoscendo il valore, esiste una funzione da <br>
applicare sul dizionario che me la fornisca direttamente, invece di <br>
dover iterare con un for su tutti i valori?<br></blockquote><div><br></div><div>Non esiste questa funzione che io sappia, ma se ci pensi è un po' controintuitivo, perché staresti utilizzando il dizionario al "contrario". </div><div>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.</div><div><br></div><div><font face="monospace">>>> flipped_dict = {v:k for k, v in original_dict.items() }</font></div><div><br></div><div>Se invece dovesse capitare che più valori nel tuo dizionario corrispondano alla stessa chiave, userei un setdefault di sicurezza</div><div><br></div><div><font face="monospace">>>> flipped_dict = dict()</font></div><div><font face="monospace">>>> for k, v in original_dict.items():</font></div><div><font face="monospace">... rd.setdefault(v, [])</font></div><div><font face="monospace">... rd[v].append(k)</font></div><div><font face="monospace"><br></font></div><div><font face="arial, sans-serif"><b>La versione compatta singola riga usando dict-comprehension è lasciata come esercizio al lettore :D</b></font></div><div><font face="arial, sans-serif">Scherzo! :D</font></div><div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">Valerio</font></div></div></div>
_______________________________________________<br>
Python mailing list<br>
<a href="mailto:Python@lists.python.it" target="_blank">Python@lists.python.it</a><br>
<a href="https://lists.python.it/mailman/listinfo/python" rel="noreferrer" target="_blank">https://lists.python.it/mailman/listinfo/python</a><br>
</blockquote></div>
</blockquote></div>