¿Cómo formato una cadena usando un diccionario en python-3.x?
Soy un gran admirador del uso de diccionarios para formatear cadenas. Me ayuda a leer el formato de cadena que estoy usando y también me permite aprovechar los diccionarios existentes. Por ejemplo:
class MyClass:
def __init__(self):
self.title = 'Title'
a = MyClass()
print 'The title is %(title)s' % a.__dict__
path = '/path/to/a/file'
print 'You put your file here: %(path)s' % locals()
Sin embargo, no puedo entender la sintaxis de Python 3.x para hacer lo mismo (o si eso es posible). quisiera hacer lo siguiente
# Fails, KeyError 'latitude'
geopoint = {'latitude':41.123,'longitude':71.091}
print '{latitude} {longitude}'.format(geopoint)
# Succeeds
print '{latitude} {longitude}'.format(latitude=41.123,longitude=71.091)
Aceptado
¿Esto es bueno para ti?
geopoint = {'latitude':41.123,'longitude':71.091}
print('{latitude} {longitude}'.format(**geopoint))
Para descomprimir un diccionario en argumentos de palabras clave, utilice **
. Además, el formato de nuevo estilo admite referencias a atributos de objetos y elementos de asignaciones:
'{0[latitude]} {0[longitude]}'.format(geopoint)
'The title is {0.title}s'.format(a) # the a from your first example