Python 记录字符串中重复元素的位置
我正在为乐谱编写自己的解析器,这只是为了好玩的学术练习 所以,如果我有一个字符串,比如和弦级数:Python 记录字符串中重复元素的位置,python,string,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#出现
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
是否有其他方法记录每个和弦在字符串中的位置,尤其是当同一元素在字符串中出现两次时有效的方法?使用:
我明白了,谢谢你,马丁!非常有帮助,非常感谢!
>>> import re
>>> s = ' A D F#;m B;m F#;m'
>>> [m.start() for m in re.finditer('F#;m', s)]
[15, 34]