在列表中查找相同元素的索引
假设我需要在单词“internet”中找到字母'e'的每一个位置:
letter = 'e'
word = 'internet'
idx = word.index(letter)
但是这段代码只给出了第一个位置。我该怎么找到其他的位置呢?
3 个回答
0
试试这个:
word = 'internet'
letter = 'e'
[i for i in xrange(len(word)) if word[i] == letter]
6
Mark的回答对于查找单个字母来说更好。我这里补充一下,如果你要查找的字符串比一个字符长的话,可以参考这个。
如果你想使用str.index()
,这个方法可以指定一个可选的start
位置。如果你要找的字符串没有找到,它会抛出一个ValueError
错误:
>>> letter = 'e'
>>> word = 'internet'
>>> last_index = -1
>>> while True:
... try:
... last_index = word.index(letter, last_index + 1)
... print last_index
... except ValueError:
... break
...
3
6