如何用python中的一个变量替换%s

时间:2012-11-06 01:36:26

标签: python

我有一个像

这样的字符串
strTemp='i don\'t want %s repeat the %s variable again %s and again %s'%('aa','aa','aa','aa')

我想用'aa'替换所有%s,所以我必须多次重复'aa',我怎么能告诉程序我想用相同的变量替换所有的%s,所以我不需要为时间键入变量

3 个答案:

答案 0 :(得分:7)

不鼓励使用%运算符。请改用str.format

strTemp='i don\'t want {0} repeat the {0} variable again {0} and again {0}'.format('aa')

答案 1 :(得分:5)

您可以使用命名格式化参数语法:

strTemp='i don\'t want %(key)s repeat the %(key)s variable again %(key)s and again %(key)s' % {
    'key': 'replacement value',
}

因为你必须重复四次键,但是如果你的替换值很长,或者是一个带有副作用的计算你真的不希望做更多不止一次,这是一个不错的选择。

答案 2 :(得分:0)

如果你有很多重复但不想输入{0}%(var)s,你可能会考虑很少使用(占位符 - )字符,它会被替换,例如:

p='µ µµ µµµ µµµµ µµµµµ {1}'.replace('µ','{0}').format(' muahaha ', 'duh')

或单个变量变量:

strTemp='i don\'t want µ repeat the µ variable again µ and again µ'.replace('µ','aa')