查找字符串中字母出现的位置

0 投票
1 回答
2549 浏览
提问于 2025-04-18 05:11

我有一个简单的问题,但我就是搞不明白。想知道在Python 2.7中,怎么找到我在标题里问的东西。让我更详细地解释一下:

假设你有一个字符串:

string = "banana"

我知道如果一个字母在字符串中只出现一次,怎么找到它的位置,比如:

string.find("b")

会返回0。

但是,如果我想找到一个字母在字符串中出现的所有位置,尤其是当它出现多次的时候,我就遇到问题了。例如:

string.find("a")

会返回1,但它其实在第3和第4个位置也出现了。

我想知道的是,怎么才能找到一个字母在字符串中出现的所有位置,即使它出现多次?谢谢你的帮助。

1 个回答

3

如果你使用了一个叫做 列表推导式enumerate 的东西,你就可以得到一个列表,里面是某个特定字符出现的位置索引:

>>> string = "banana"
>>>
>>> list(enumerate(string))  # Just to demonstrate
[(0, 'b'), (1, 'a'), (2, 'n'), (3, 'a'), (4, 'n'), (5, 'a')]
>>>
>>> [x for x,y in enumerate(string) if y == 'a']
[1, 3, 5]
>>> [x for x,y in enumerate(string) if y == 'n']
[2, 4]
>>>

撰写回答