查找字符串中字母出现的位置
我有一个简单的问题,但我就是搞不明白。想知道在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]
>>>