Python字符串方法难题

时间:2010-02-11 20:46:46

标签: python string methods

以下代码应该在删除SpamWords [0]后打印MyWords。然而;而不是返回“是”而是返回“无”。为什么它会返回“无”?

MyWords = "Spam yes"
SpamWords = ["SPAM"]
SpamCheckRange = 0
print ((MyWords.upper()).split()).remove(SpamWords[SpamCheckRange])

2 个答案:

答案 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)

removeliststr.split返回列表)的方法,而不是str。它会改变原始列表(删除你传递的内容)并返回None不是修改后的列表。