Como posso criar strings python com espaços reservados com número arbitrário de elementos
-
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?
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