Como posso criar strings python com espaços reservados com número arbitrário de elementos

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

  •  28-09-2019
  •  | 
  •  

Pergunta

eu posso fazer

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

mas não consigo colocar os vars em outra variável para poder criar uma lista de vars rapidamente com a lógica do aplicativo.por exemplo

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

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

Alguma idéia de como fazer isso com python 2.6?

Foi útil?

Solução

Que tal agora?

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

Na verdade, essa é uma maneira bastante boba de fazer as coisas.Se você quiser apenas juntar todas as variáveis ​​em uma grande string, esta é provavelmente uma ideia melhor:

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

Isso requer pelo menos Python 2.4 para funcionar.

Outras dicas

Use uma lista para anexar/remover strings e depois "" .Join (sua lista) 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

Mas você realmente não precisa de formatação de string se estiver apenas ingressando no VARS; Por que não fazer:

"".join( map( str, vars ) )
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top