我目前遇到的问题是,我需要检查"a"
中字母string1
的每个实例,并将其替换为substring
。
例如,假设substring
为"dragon"
,如果原始string1
为"apple"
,我需要返回"dragonpple"
。
到目前为止,我的尝试是:
def (string1, substring):
new_string= " "
for letter in string1:
if letter ! = "a":
new_string.append(letter)
elif letter = "a":
a = substring
我真的不知道如何构建这个,但这是我的一般思维过程。我不确定如何删除字母"a"
并将其替换为substring
而不会破坏字符串本身。
此外,我无法使用索引或.remove
方法。非常感谢帮助。
答案 0 :(得分:5)
这里有很多问题;让我们分解它们而不会过多地改变原始代码:
您的功能定义缺少名称,请正确定义名称。例如:
def replace_a(string_a, substring): ...
我猜这可能是一个复制粘贴遗漏。
if letter ! = "a":
是SyntaxError
,! =
不会被解释为!=
(但是会被解释为两个独立的运算符!
和=
)不幸的是,这也需要修复。elif letter = "a":
是另一个SyntaxError
;不应将赋值语句与等式检查混淆,即=
与使用==
不相似。new_string.append(letter)
是TypeError
;方法append
没有为字符串定义,字符串是不可变,追加是一种改变对象的方法。 append
可以使用list
。a = substring
做得不多:-(。您已分配给a
,然后根本不使用它。return
语句。你可以考虑的一种方法是使用一个字符串列表并改变它;列表是可变的,所以改变你的心愿。然后,你join
最后的列表,并从其中的所有字符中返回一个字符串:
def replace_a(string1, substring):
new_string= []
for letter in string1:
if letter != "a":
new_string.append(letter)
elif letter == "a":
new_string.append(substring)
return "".join(new_string)
这会产生你想要的结果。
如果您不能使用list
,请将其变更,然后join
,您可以逐步构建新字符串:
def replace(string1, substring):
new_string= ""
for letter in string1:
if letter != "a":
new_string += letter
elif letter == "a":
new_string += substring
return new_string
这又与之前基于list
的函数类似,但依赖于+=
,它通过将new_string
中的旧值与letter
或{{substring
相结合来创建新字符串1}}基于条件。
当然,字符串上的.replace
可以解决问题,因为@yper建议的评论可以解释你的尝试没有实现你所追求的目标。
你很接近但遗漏了几件基本的东西,我建议你看一下Python Tutorial。 : - )