我在 Codecademy 上,名为“Practice Makes Perfect”的部分,在问题 10/15 上,单词审查问题。问题是这样的:

编写一个名为 censor 的函数,它接受两个字符串 textword 作为输入。它应该返回带有您选择替换为星号的 word 的文本。

我的想法是这样做:

def censor(text, word):
    length_of_word = len(word)
    word_now_censored = '*' * length_of_word
    wordlist = text.split()
    for item in wordlist:
        if item == word:
            item = word_now_censored
    return " ".join(wordlist)

但是,看起来,在 for 循环中更改 item 的值不会更改列表中项目的值。

我认为另一种方法可能是使用 while 循环,从 i = 0i < len(wordlist) ,然后根据需要修改 wordlist[i] ,但我只想了解为什么我的 for -loop 方法不起作用。

最佳答案

改成这样:

for index, item in enumerate(wordlist):
    if item == word:
        wordlist[index] = word_now_censored

关于python - Codecademy 实践使完美 10/15(字词审查),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23832851/

10-12 21:55