记录字符串中重复元素的位置

时间:2014-11-30 03:10:06

标签: python string

我正在为乐谱编写自己的解析器,就像学习乐趣一样。

所以,如果我有一个弦乐,比如和弦进行:

In [1]: string = ' A          D  F#;m        B;m    F#;m'

我很想找到每个和弦的弦乐位置,我可以做,例如:

In [3]: string.index('D')
Out[3]: 12

但是,如果我尝试查找重复元素的索引,例如F#;m,则输出将为:

In [4]: string.index('F#;m')
Out[4]: 15

但是,有两次F#; m,一次在15位,一次在34位。

是否有其他方法可以记录字符串中每个和弦的位置,尤其是当字符串中存在相同元素两次时可以工作的那个?

1 个答案:

答案 0 :(得分:1)

使用re.finditer

>>> import re
>>> s = ' A          D  F#;m        B;m    F#;m'
>>> [m.start() for m in re.finditer('F#;m', s)]
[15, 34]