Come posso creare stringhe di pitone con segnaposto con numero arbitrario di elementi

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

  •  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?

È stato utile?

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
scroll top