我有一个字符串
strTemp='i don\'t want %s repeat the %s variable again %s and again %s'%('aa','aa','aa','aa')
我想用'aa'替换所有的%s,所以我必须重复'aa'很多次,我怎么告诉程序我想用同一个变量替换所有的%s,所以我需要't 键入变量的次数
我有一个字符串
strTemp='i don\'t want %s repeat the %s variable again %s and again %s'%('aa','aa','aa','aa')
我想用'aa'替换所有的%s,所以我必须重复'aa'很多次,我怎么告诉程序我想用同一个变量替换所有的%s,所以我需要't 键入变量的次数
不鼓励使用 % 运算符。改为使用str.format
。
strTemp='i don\'t want {0} repeat the {0} variable again {0} and again {0}'.format('aa')
您可以使用命名的格式化参数语法:
strTemp='i don\'t want %(key)s repeat the %(key)s variable again %(key)s and again %(key)s' % {
'key': 'replacement value',
}
不一定会好很多,因为您必须重复一个键四次,但如果您的替换值很长,或者是一个您真的不想多次执行的具有副作用的计算,这是一个不错的选择。
如果您确实有很多重复并且不想输入{0}
,或者%(var)s
您可以考虑使用很少使用的(占位符-)char,它会被替换,例如:
p='µ µµ µµµ µµµµ µµµµµ {1}'.replace('µ','{0}').format(' muahaha ', 'duh')
或对于单个替换变量:
strTemp='i don\'t want µ repeat the µ variable again µ and again µ'.replace('µ','aa')