假设我必须在“互联网”一词中找到字母'e'的每个索引:
letter = 'e'
word = 'internet'
idx = word.index(letter)
但是这段代码只给出了第一个索引。我怎样才能找到其余的?
答案 0 :(得分:13)
尝试在enumerate中使用list comprehension:
[index for (index, letter) in enumerate(word) if letter == 'e']
答案 1 :(得分:6)
Mark's answer更好。我正在添加它,以防你的真实子串超过一个字符。
如果您想使用str.index()
,则可以选择start
位置,如果找不到所需的子字符串,则会raise
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
答案 2 :(得分:0)
试试这个:
word = 'internet'
letter = 'e'
[i for i in xrange(len(word)) if word[i] == letter]