如何在Python列表中找到元素的索引?

时间:2010-11-04 13:53:57

标签: python list indexing

  

可能重复:
  How to find positions of the list maximum?

家庭作业的问题: 定义一个函数censor(words,nasty),它取一个单词列表,和 用CENSORED替换所有出现在讨厌中的单词,和 返回被删除的单词列表。

>>> censor([’it’,’is’,’raining’], [’raining’])
[’it’,’is’,’CENSORED’]

我看到这样的解决方案:

  1. 找到nasty
  2. 的索引
  3. 替换与该索引匹配的单词 "CENSORED"
  4. 但我仍然坚持找到索引..

4 个答案:

答案 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 comprehensionconditional expression参与更优雅的版本:

答案 3 :(得分:0)

您可以使用方便的内置enumerate()功能来逐步浏览列表中的项目。例如:

def censor(words, nasty):
    for i,word in enumerate(words):
       if word...