通过codeacademy for python,一项任务是编写一个函数,该函数将获取一个字符串并用星号删除某个单词,然后返回该字符串。我试了一种方法,但没有成功,但我试了另一种方法,它成功了。我只是好奇为什么。你知道吗
不起作用的那个:
def censor(text, word):
split_string = text.split()
replace_string = "*" * len(word)
for i in split_string:
if i == word:
i = replace_string
return " ".join(split_string)
其中一个确实有效:
def censor(text, word):
split_string = text.split()
replace_string = "*" * len(word)
for i in range(0, len(split_string)):
if split_string[i] == word:
split_string[i] = replace_string
return " ".join(split_string)
下面的语句使
i
引用replace_string
引用的值,并且它不影响列表项。你知道吗而
lst[<number>] = replace_string
则将列表项更改到位。你知道吗这不起作用,因为您所做的只是将名称
i
分配给另一个字符串。相反,您可以建立一个新的列表,或者像在第二个示例中那样替换原始列表中的字符串。你知道吗相关问题 更多 >
编程相关推荐