如何解决“如果不是唯一的参数,则必须对生成器表达式加括号”错误?

时间:2018-06-20 14:19:14

标签: python python-2.7

我正在编写检查某些单词的程序。

def censor(sentence, word):
  splitted_sentence = sentence.split()  #splitted_sent = ["he", "is", "a", "clucking", "boy"]
  censored = [item.replace(item, "*" * len(item) for item in word)]
  return censored
print censor("he is a clucking boy", "clucking")  

在此示例中,我想做的是过滤句子中的“咯咯”一词。但是当我运行它时,它说:

  

如果不是唯一的参数,则必须在生成器表达式中加上括号。

2 个答案:

答案 0 :(得分:0)

不需要列表理解就可以使简单的事情复杂化。请在下面找到执行相同操作的简单代码。

def fun(sen,word):
    sen=sen.replace(word, len(word)*"*")
    return sen

print(fun("he is a clucking boy","clucking")) #he is a ******** boy

答案 1 :(得分:-2)

可能您放错了括号。试试这个:

censored = [item.replace(item, "*" * len(item)) for item in word]