¿Cómo puedo crear cadenas de pitón con marcadores de posición por número arbitrario de elementos

StackOverflow https://stackoverflow.com/questions/3468916

  •  28-09-2019
  •  | 
  •  

Pregunta

Puedo hacer

string="%s"*3
print string %(var1,var2,var3)

pero no puedo conseguir el vars en otra variable, de modo que puedo crear una lista de VARs sobre la marcha con la lógica de aplicación. por ejemplo

if condition:
  add a new %s to string variable
  vars.append(newvar)

else:
  remove one %s from string
  vars.pop()
print string with placeholders

¿Alguna idea sobre cómo hacer esto con Python 2.6?

¿Fue útil?

Solución

¿Qué tal esto?

print ("%s" * len(vars)) % tuple(vars)

Realmente sin embargo, que es una manera bastante tonta para hacer las cosas. Si lo que desea es aplastar todas las variables juntas en una cadena grande, esto es probablemente una mejor idea:

print ''.join(str(x) for x in vars)

Eso requiere al menos Python 2.4 para el trabajo.

Otros consejos

utilizar una lista de cadenas de agregación / eliminar luego "" .join (yourlist) antes de imprimir

>>> q = []
>>> for x in range(3):
    q.append("%s")
>>> "".join(q)
'%s%s%s'
>>> print "".join(q) % ("a","b","c")
abc
n = 0
if condition:
  increment n
  vars.append(newvar)

else:
  decrement n
  vars.pop()

string = "%s" * n
print string with placeholders

cadena, pero que realmente no necesita formatear si acaba de unirse a la vars; ¿por qué no hacer:

"".join( map( str, vars ) )
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top