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

问题描述:

我需要打印像这样在字符串替换中多次引用相同的输入?

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

虽然我已经NAME 1和NAME在变量N1 N2

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) 
+0

怎么办?最后一部分对我来说没有多大意义。 – 2011-04-13 21:22:08

+0

I ment python version – 2011-04-13 21:53:37

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

这很好,有什么使用格式和模板? – 2011-04-13 21:56:28

只要元组被简单地复制您可以使用元组乘法简化,以其他方式使用对方的回答显示的字典插值或使用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) 

但是,这是容易出错的,至少可以说。

+0

对不起,它没有以任何顺序排斥,其名称为name1的段落一直重复。为了简洁起见,我使用了这个前缀。 – 2011-04-13 21:55:40

+0

那么没有比字典方式更好的方法了,对不起。 – sverre 2011-04-13 22:02:20