test = "ABC"
for i in range(0, 5):
print i
test test.replace('ABC', str(i))
print test
这打印0,而我希望它打印4.发生了什么?
答案 0 :(得分:1)
这很有道理。
roster
是一个空字符串。 replace
永远不会(假设name_list
不包含空字符串,那么我不知道它将如何表现)匹配空字符串中的任何内容。
更新
看起来,如果你的name_list
包含一个空字符串,那么它将进行替换(Python 2.7):
''.replace('', 'foo') # => 'foo'
(假设您在=
和test
之间错过了test.replace('ABC', str(i))
您的问题的新代码,预计会输出0
。您正在将test
变更为'0'
,然后'ABC'
的匹配将永远不再符合1
到4
。