Python 3.2: Cómo pasar un diccionario a str.formato()


He estado leyendo los documentos de Python 3.2 sobre el formato de cadena, pero realmente no me ha ayudado con este problema en particular.

Esto es lo que estoy tratando de hacer:

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

El código anterior no funcionará porque la llamada format() no lee los valores del diccionario y los usa en lugar de mis marcadores de posición format. ¿Cómo puedo modificar mi código para que funcione con mi diccionario?

Author: dreftymac, 2011-06-27

2 answers

Esto hace el trabajo:

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

Para obtener más información, consulte:

 40
Author: pawroman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-26 23:52:05

Quieres .format(**stats) ya que eso hace que las estadísticas formen parte de los kwargs del formato.

 13
Author: Dan D.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-26 23:47:21