python字符串中的持久索引

时间:2013-06-04 09:35:45

标签: python string python-2.7 indexing

我正在尝试使用string.index()来忽略它已经位于字符串中的字符的实例。这是我最好的尝试:

alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

def save_alphabet(phrase):
    saved_alphabet = ""
    for item in phrase:
        if item in alphabet:
            saved_alphabet = saved_alphabet + str(phrase.index(item))
    return saved_alphabet

print save_alphabet("aAaEaaUA")

我想要的输出是“1367”但是,因为它只找到item的第一个实例,所以输出“1361”。

最好的方法是什么?返回的值应为字符串格式。

1 个答案:

答案 0 :(得分:2)

>>> from string import ascii_uppercase as alphabet
>>> "".join([str(i) for i, c in enumerate("aAaEaaUA") if c in alphabet])
'1367'

regex 解决方案(在这种情况下不喜欢正则表达式)

>>> import re
>>> "".join([str(m.start()) for m in re.finditer(r'[A-Z]', "aAaEaaUA")])
'1367'