我有一个像
这样的字符串strTemp='i don\'t want %s repeat the %s variable again %s and again %s'%('aa','aa','aa','aa')
我想用'aa'替换所有%s,所以我必须多次重复'aa',我怎么能告诉程序我想用相同的变量替换所有的%s,所以我不需要为时间键入变量
答案 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')