我能做到
string="%s"*3
print string %(var1,var2,var3)
但我无法将vars转换为另一个变量,因此我可以使用app逻辑动态创建变量列表。 例如
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执行此操作的任何想法?
答案 0 :(得分:6)
这个怎么样?
print ("%s" * len(vars)) % tuple(vars)
但实际上,这是一种相当愚蠢的做事方式。如果您只想将所有变量压缩在一个大字符串中,这可能是一个更好的主意:
print ''.join(str(x) for x in vars)
这至少需要Python 2.4才能工作。
答案 1 :(得分:3)
在打印之前使用列表追加/删除字符串然后“”.join(yourlist)
>>> q = []
>>> for x in range(3):
q.append("%s")
>>> "".join(q)
'%s%s%s'
>>> print "".join(q) % ("a","b","c")
abc
答案 2 :(得分:1)
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 ) )