Как я могу создать строки Python с заполнителями с произвольным количеством элементов
-
28-09-2019 - |
Вопрос
я могу сделать
string="%s"*3
print string %(var1,var2,var3)
Но я не могу получить вариусы в другую переменную, чтобы я мог создать список варс на лету с логикой приложения. Например
if condition:
add a new %s to string variable
vars.append(newvar)
else:
remove one %s from string
vars.pop()
print string with placeholders
Любые идеи о том, как сделать это с Python 2.6?
Решение
Как насчет этого?
print ("%s" * len(vars)) % tuple(vars)
Действительно, это довольно глупый способ делать вещи. Если вы просто хотите прошивать все переменные вместе в одной большой строке, это, вероятно, лучшая идея:
print ''.join(str(x) for x in vars)
Это требует, по крайней мере, Python 2.4 для работы.
Другие советы
Используйте список для добавления / удаления строк, затем «.join (yourList) перед печатью
>>> 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
Но вам не очень нужен форматирование строки, если вы просто присоединяетесь к вариантам; Почему бы не сделать:
"".join( map( str, vars ) )
Не связан с StackOverflow