Как я могу создать строки Python с заполнителями с произвольным количеством элементов

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

  •  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 ) )
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top