在字符串替换中多次引用相同的输入?

时间:2011-04-13 21:20:54

标签: python string

我需要打印这样的东西

"a=name1,b=name2,c=name1,d=name2"

虽然我在变量n1 n2中有name1和name2

n1="name1"
n2="name2"

我想做什么

"a=%s,b=%s,c=%s,d=%s" % (n1,n2,n1,n2)

有比这更好的方法吗?避免n1,n2,n1,n2?

的方法

使用python 3?

以及如果

print sys.version_info
(2, 1, 0, 'final', 0) 

2 个答案:

答案 0 :(得分:7)

"a=%(name1)s,b=%(name2)s,c=%(name1)s,d=%(name2)s" % {'name1': n1, 'name2': n2}

答案 1 :(得分:0)

只要元组被简单复制,你可以通过使用元组乘法来简化,否则使用另一个答案中显示的字典插值或使用string.format

(n1, n2, n1, n2) == (n1, n2) * 2

使用format

的示例
"a={0}, b={1}, c={0}, d={1}".format(name1, name2)

或者您可以使用string.replace

"a=n1, b=n2, c=n1, d=n2".replace('n1', name1).replace('n2', name2)

但至少可以说这很容易出错。