Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    536

    [PYTHON] Ciclo for per dictionary annidato

    Ciao
    Ho iniziato da poco a studiare Python da zero.
    Sto avendo delle difficoltà con i dictionary, in particolare con l'estrazione dei valori da dizionari annidati.

    Questo è il dizionario:

    codice:
    shopping = {
    'beer': {'quantity': 6, 'price': 1.60},
    'potatos': {'quantity': 3, 'price': 1},
    'milK': {'quantity': 2, 'price': 1.20}
    }

    in poche parole per ogni chiave di shopping (beer, potatos e milk) devo moltiplicare le quantità per il prezzo
    e poi aggiungere i 3 subtotali al totale complessivo. Volveo stampare anche i subtotali prima.

    Ho inziato a fare così:

    codice:
    tot = 0
    for elem, value in shopping.items():
        print(f"Total amount {elem}:")
        for pre, qua in value.items():
        print(qua)
    Anche se ho risolto problematiche simili in prcedenza adesso sto avendo problemi in questo caso specifico e mi sono incartato
    Ho aggiunto print(qua) per verificare l'estrazione dei valori, però non ho capito come fare il calcolo. Ci ho provato ma ottengo sempre problemi in merito a valori integer.
    più che a risolvere questo problema, potete aiutarmi a capire la procedura?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Il punto è che non serve scorrere il secondo dizionario, non ce n'è proprio ragione. In generale non dovresti scorrere un dizionario che rappresenti un record con dati eterogenei.

    La soluzione è banale:
    codice:
    value['quantity'] * value['price']
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    536
    Quote Originariamente inviata da Scara95 Visualizza il messaggio
    Il punto è che non serve scorrere il secondo dizionario, non ce n'è proprio ragione. In generale non dovresti scorrere un dizionario che rappresenti un record con dati eterogenei.

    La soluzione è banale:
    codice:
    value['quantity'] * value['price']
    pensavo che si usasse lo stesso metodo per estrarre la chaive dal dizionario principale.
    Devo ancora capire bene come funzionano questi dizionari.
    Grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.