我正在尝试使用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”。
最好的方法是什么?返回的值应为字符串格式。
答案 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'