首页 > 解决方案 > 我如何检查它是否应该是python中的an或a?

问题描述

所以我制作了一个生成器(它是什么并不重要)并且我试图让 a/ans 正确地出现在名词之前。

例如:“一个苹果用一根香蕉玩剪刀石头布”而不是:“一个苹果用一根香蕉玩剪刀石头布”

尚未确定的 a/an 的默认设置是,"<a>" 所以我需要"<a>"用 a 或 an 替换,这取决于它后面的字母是否是元音。

我该怎么做?

标签: python

解决方案


试试这个简单的代码

输入:

a apple an day keeps doctor away

代码:

def convert(lst):  
    return str(lst).translate(None, '[],\'') 

string = "a apple an day keeps doctor away"
a_list = string.split(" ")
for i in range(len(a_list)):
    try:
        if a_list[i] == 'a':
            if a_list[i+1][0] in ['a','e','i','o','u']:
                a_list[i] = 'an'
        elif a_list[i] == 'an':
            if a_list[i+1][0] not in ['a','e','i','o','u']:
                a_list[i] = 'a'
    except e:
        print(str(e))

print(convert(a_list))

输出:

an apple a day keeps doctor away


推荐阅读