Tengo una cadena de esta forma
s='arbit'
string='%s hello world %s hello world %s' %(s,s,s)
Todos los% s de la cadena tienen el mismo valor (es decir, s). ¿Existe una forma mejor de escribir esto? (En lugar de enumerar s tres veces)
%
operador de cadena será "obsoleto en Python 3.1 y eliminado más tarde en algún momento" docs.python.org/release/3.0.1/whatsnew/… ahora me pregunto cuál es la forma más recomendada tanto para la compatibilidad de versiones como para la seguridad.
str.format()
. Ej .: query = "SELECT * FROM {named_arg}"; query.format(**kwargs)
, donde query
es la cadena de formato y kwargs
es un diccionario con claves que coinciden con la named_arg
s en la cadena de formato.
{0}
, {1}
, {2}
etc., corresponden a los índices de tupla 0
, 1
y 2
, respectivamente. Alternativamente, también es posible nombrar los argumentos (como {named_arg}
) y configurar cada uno en el método de formato, así:'Hi {fname} {lname}!'.format(fname='John', lname='Doe')