查找列表中相同元素的索引

mar*_*isi 7 python

假设我必须在"互联网"一词中找到字母'e'的每个索引:

letter = 'e'
word = 'internet'
idx = word.index(letter)
Run Code Online (Sandbox Code Playgroud)

但是这段代码只给出了第一个索引.我怎样才能找到其余的?

Mar*_*ers 13

尝试在列表解析中使用枚举:

[index for (index, letter) in enumerate(word) if letter == 'e']
Run Code Online (Sandbox Code Playgroud)


Joh*_*web 6

马克的答案对于一封信来说更好.我正在添加它,以防你的真实子串长于一个字符.

如果你想使用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
Run Code Online (Sandbox Code Playgroud)

  • 如果您打算使用它,我建议将其粘贴到生成索引的生成器函数中. (2认同)