家庭作业的问题:
定义一个函数censor(words,nasty)
,它取一个单词列表,和
用CENSORED替换所有出现在讨厌中的单词,和
返回被删除的单词列表。
>>> censor([’it’,’is’,’raining’], [’raining’])
[’it’,’is’,’CENSORED’]
我看到这样的解决方案:
nasty
"CENSORED"
但我仍然坚持找到索引..
答案 0 :(得分:24)
您可以使用list
方法找到.index
的任何元素的索引。
>>> l=['a','b','c']
>>> l.index('b')
1
答案 1 :(得分:1)
您的方法可能有效,但不必要的复杂。
Python允许使用非常简单的语法来检查列表中是否包含某些内容:
censor = [ 'bugger', 'nickle' ]
word = 'bugger'
if word in censor: print 'CENSORED'
使用这种方法,只需遍历您的单词列表并测试每个单词是否在censor
列表中。
要遍历您的单词列表,您可以使用for
循环。由于您可能需要修改当前单词,请使用索引,如下所示:
for index in len(words)):
print index, words[index]
现在您需要做的就是将两个代码片段放在一起。
答案 2 :(得分:1)
实际上你不必在这里使用索引。只需遍历words
列表,然后检查nasty
中是否列出了该字词。如果它将'CENSORED'
附加到结果列表,则附加单词本身。
或者您可以让list comprehension和conditional expression参与更优雅的版本:
答案 3 :(得分:0)
您可以使用方便的内置enumerate()
功能来逐步浏览列表中的项目。例如:
def censor(words, nasty):
for i,word in enumerate(words):
if word...