2011-04-13 85 views
2

我需要打印像這樣在字符串替換中多次引用相同的輸入?

"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

回答

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

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

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) 

但是,這是容易出錯的,至少可以說。

+0

對不起,它沒有以任何順序排斥,其名稱爲name1的段落一直重複。爲了簡潔起見,我使用了這個前綴。 – 2011-04-13 21:55:40

+0

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

相關問題