1

我试图让 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”。

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

4

1 回答 1

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

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

>>> import re
>>> "".join([str(m.start()) for m in re.finditer(r'[A-Z]', "aAaEaaUA")])
'1367'
于 2013-06-04T09:37:29.660 回答