Come posso creare stringhe di pitone con segnaposto con numero arbitrario di elementi
-
28-09-2019 - |
Domanda
posso fare
string="%s"*3
print string %(var1,var2,var3)
ma non riesco a ottenere il vars in un'altra variabile in modo che io possa creare una lista di Vars al volo con la logica app. ad esempio
if condition:
add a new %s to string variable
vars.append(newvar)
else:
remove one %s from string
vars.pop()
print string with placeholders
Tutte le idee su come fare questo con Python 2.6?
Soluzione
Che ne dici di questo?
print ("%s" * len(vars)) % tuple(vars)
In realtà, però, questo è un modo piuttosto sciocco di fare le cose. Se si desidera solo per schiacciare tutte le variabili insieme in un unico grande stringa, è probabile che un'idea migliore:
print ''.join(str(x) for x in vars)
Questo non richiede almeno Python 2.4 al lavoro.
Altri suggerimenti
utilizzare un elenco di stringhe di aggiunta / rimuovere poi "" .join (yourlist) prima di stampare
>>> 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
stringa Ma non si ha realmente bisogno di formattazione se si sta solo unendo i VaR; perché non fare:
"".join( map( str, vars ) )
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow