2

我有一个字符串

strTemp='i don\'t want %s repeat the %s variable again %s and again %s'%('aa','aa','aa','aa')

我想用'aa'替换所有的%s,所以我必须重复'aa'很多次,我怎么告诉程序我想用同一个变量替换所有的%s,所以我需要't 键入变量的次数

4

3 回答 3

7

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

strTemp='i don\'t want {0} repeat the {0} variable again {0} and again {0}'.format('aa')
于 2012-11-06T01:38:42.417 回答
5

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

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

不一定会好很多,因为您必须重复一个键四次,但如果您的替换值很长,或者是一个您真的不想多次执行的具有副作用的计算,这是一个不错的选择。

于 2012-11-06T01:37:46.753 回答
0

如果您确实有很多重复并且不想输入{0},或者%(var)s您可以考虑使用很少使用的(占位符-)char,它会被替换,例如:

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

或对于单个替换变量:

strTemp='i don\'t want µ repeat the µ variable again µ and again µ'.replace('µ','aa')
于 2012-11-06T01:58:14.793 回答