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

Do you need help?

Notice Board

comparazione con i dizionari

1794095 (990 points)
5 13 22
in Es3 by (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}
>>>
718 views
closed

2 Answers

Best answer
LeonardoEmili (35740 points)
13 65 155
by (35.7k points)
selected by

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)
21 51 129
by (33.6k points)
Bella risposta Leonardo!
Luca T. (5410 points)
3 20 38
by (5.4k 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)
5 13 22
by (990 points)
esatto vorrei provare cosi
Luca T. (5410 points)
3 20 38
by (5.4k 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)
13 65 155
by (35.7k 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)
21 51 129
by (33.6k points)
Quoto la risposta!