【发布时间】:2020-10-03 22:58:53
【问题描述】:
我创建了这个函数:
def change(string,word1,word2):
string=string.split(" ")
for x in string:
if x==word1:
x=word2
string=" ".join(string)
print (string)
v1= "X went to buy food. X forgot his car keys in the car."
change(v1,"X","Y")
但是输出还是:
"X went to buy food. X forgot his car keys in the car."
输出应该是:
"Y went to buy food. Y forgot his car keys in the car."
代码有什么问题?为什么它不起作用?
编辑: 伙计们,感谢所有解决方案,但我想知道为什么这不起作用?这样我以后就不会犯类似的错误了。
【问题讨论】:
-
不能用replace吗?喜欢
v1.replace('X','Y') -
字符串是不可变的,并且分配给裸名不会首先发生变化。请改用
str.replace。 -
我认为像这样定义
change:def change(string,word1,word2): print(string.replace(word1, word2))会更好 -
理想函数应该如何处理这句话:“X忘记了字母表以3个字符XYZ结尾”?我的意思是,你想要实际的单词替换吗? “XYZ”会保留为“XYZ”吗?那将是正确的单词替换。