所以我正在研究这个问题
元音音素是最后一个字符为0,1或2的音素。例如,单词BEFORE(B IH0 F AO1 R)包含两个元音音素,单词GAP(G AE1 P)有一个。
该参数代表音素列表。该功能是返回一个列表,其中包含给定音素列表中的最后一个元音音素和随后的辅音音素。如果音素列表不包含元音音素,则返回空列表。
答案 0 :(得分:4)
def last_phonemes(phoneme_list):
""" (list of str) -> list of str
Return the last vowel phoneme and subsequent consonant phoneme(s) in
phoneme_list.
>>> last_phonemes(['AE1', 'B', 'S', 'IH0', 'N', 'TH'])
['IH0', 'N', 'TH']
>>> last_phonemes(['IH0', 'N'])
['IH0', 'N']
>>> last_phonemes(['B', 'S'])
[]
"""
for i, phoneme in reversed(list(enumerate(phoneme_list))):
if phoneme[-1] in '012':
return phoneme_list[i:]
return []
编辑解释
您希望以reversed顺序遍历phoneme_list。当您找到包含“0”字符的第一个项目时,您希望切片原始列表(您的代码中有切片部分)。您将需要索引来进行切片,因此在转换之前,您需要enumerate phoneme_list。