comparazione con i dizionari

1794095 (990 points)
3 13 22
asked Oct 31, 2017 in Es3 by 1794095 (990 points)
salve a tutti stavo giocando con un programma di python che conta le lettere in una parola e ho notato questo

>>> contalettere('mamma')
{'m': 3, 'a': 2}
>>> contalettere('cocco')
{'c': 3, 'o': 2}
>>> contalettere('nonno')
{'n': 3, 'o': 2}
>>> contalettere('pippi')
{'p': 3, 'i': 2}
>>> contalettere('Lalla')
{'L': 1, 'a': 2, 'l': 2}#scusate errore mio
>>> contalettere('lalla')
{'l': 3, 'a': 2}
>>> contalettere('nanna')
{'n': 3, 'a': 2}
>>>

la domanda che io mi pongo è questa è possibile comparare due dizionari con chiavi diverse ma con valori uguali e farli confrontare con il codice dato per esempio io ho notato che tutte le parole citate sopra soddisfano il codice 12112

>>> contalettere('12112')
{'1': 3, '2': 2}
>>>
264 views

2 Answers

Best answer
LeonardoEmili (35740 points)
11 65 155
answered Oct 31, 2017 by LeonardoEmili (35,740 points)
selected Nov 1, 2017 by 1794095

Ciao!

Dunque se vuoi un mero confronto rispetto agli elementi del dizionario la risposta è no. Questo perché se provi a iterare su un dizionario e a confrontare gli elementi el iterati su di esso ti accorgerai che ti restituirà le chiavi dello stesso. Tuttavia il comportamento che desideri lo puoi attuare in due modi diversi:

  • utilizzando le chiavi del dizionario e confrontando il dizionario[chiave], otterrai il valore relativo alla chiave e lo potrai dunque confrontare con determinati elementi
  • Oppure puoi iterare sul dizionario utilizzando il metodo items() e inizializzando due variabili, le quali saranno nell'ordine key and value. Ti fornisco un esempio esplicativo:
    • es. for k,v in diz.keys(): //code
Spero di esserti stato d'aiuto!
Buona serata
.
Leonardo Emili
francesco.dev (33560 points)
14 51 129
commented Nov 1, 2017 by francesco.dev (33,560 points)
Bella risposta Leonardo!
Luca T. (5410 points)
3 20 38
answered Oct 31, 2017 by Luca T. (5,410 points)
In che senso? Non ho ben capito. Potresti confrontare la lista di attributi usando il metodo dizionario.values(). Confronti se le liste di attributi sono esattamente le stesse in questo modo.
1794095 (990 points)
3 13 22
commented Oct 31, 2017 by 1794095 (990 points)
esatto vorrei provare cosi
Luca T. (5410 points)
3 20 38
commented Oct 31, 2017 by Luca T. (5,410 points)
Ho fatto un attimo una prova. Per confrontare gli attributi devi usare anche list, quindi: list(dizionario.values()). Altrimenti restituisce False, spero di esserti stato utile.
LeonardoEmili (35740 points)
11 65 155
commented Oct 31, 2017 by LeonardoEmili (35,740 points)
Altresì come suggerito da Luca T. con dizionario.values() ottieni direttamente i soli valori per un confronto 1-a-1.
francesco.dev (33560 points)
14 51 129
commented Nov 1, 2017 by francesco.dev (33,560 points)
Quoto la risposta!