以下代码应该在删除SpamWords [0]后打印MyWords。然而;而不是返回“是”而是返回“无”。为什么它会返回“无”?
MyWords = "Spam yes"
SpamWords = ["SPAM"]
SpamCheckRange = 0
print ((MyWords.upper()).split()).remove(SpamWords[SpamCheckRange])
答案 0 :(得分:7)
因为remove
是一个更改可变列表对象的方法,所以它被调用,并返回None
。
l= MyWords.upper().split()
l.remove(SpamWords[SpamCheckRange])
# l is ['YES']
也许你想要:
>>> [word for word in MyWords.split() if word.upper() not in SpamWords]
['yes']
答案 1 :(得分:0)
remove
是list
(str.split
返回列表)的方法,而不是str
。它会改变原始列表(删除你传递的内容)并返回None
,不是修改后的列表。