2011-06-26 9 views
15

Ho letto i documenti Python 3.2 sulla formattazione delle stringhe, ma non mi ha veramente aiutato con questo particolare problema.Python 3.2: Come passare un dizionario in str.format()

Ecco quello che sto cercando di fare:

stats = { 'copied': 5, 'skipped': 14 } 
print('Copied: {copied}, Skipped: {skipped}'.format(stats)) 

Il codice di cui sopra non funzionerà perché la chiamata format() non legge i valori del dizionario e l'utilizzo di quelli al posto di mio formato di segnaposto. Come posso modificare il mio codice per lavorare con il mio dizionario?

risposta

31

Questo fa il lavoro:

stats = { 'copied': 5, 'skipped': 14 } 
print('Copied: {copied}, Skipped: {skipped}'.format(**stats)) #use ** to "unpack" a dictionary 

Per maggiori informazioni si prega di fare riferimento a:

+1

Perché questo uno ottiene meno up-voti ? Ha più informazioni (link a documenti) e un esempio migliore. –

12

si desidera .format(**stats) in quanto rende le statistiche parte dei kwargs del formato.