python

2020-08-06 英文复数

2020-08-06  本文已影响0人  Python_Camp

输入需要处理的单词 words

words = ['zoo','bamboo','radio',
'studio','echo', 'ox',
'torpedo','baby','bus',
'box','boy','match',
'fly','paper','glue']

规则变量初始化

vowel = set('aeiou')
es = {'s','x','sh','ch'}
words = ['own','owe','owel']

def dual_vow(w): #dual_vow
return all(c in vowel for c in w[-2:])

def isVow_y(w): #cons+dual_vow
it = iter(w[-2:])
return next(it) in vowel and next(it) == 'y'

def isCon_y(w): #dual_vow
it = iter(w[-2:])
return next(it) not in vowel and next(it) == 'y'

def isEs(w): #{'s','x','sh','ch'}

it = iter(w[-2:])
return w[-1] in es or w[-2:] in es

irregular = ['bus','potato','tomato','hero',
'chief','roof','knife']

不规则单词需要手动持续添加

主函数

def plural(words):

Dual_vow = list(map(lambda x:x+'s',filter(dual_vow,words)))

IsVow_y = list(map(lambda x:x+'s',filter(isVow_y,words)))

IsCon_y = list(map(lambda x:x+'ies',filter(isCon_y,words)))

IsEs = list(map(lambda x:x+'es',filter(isEs,words)))

return {'Dual_vow':Dual_vow,

        'IsVow_y':IsVow_y,

        'IsCon_y':IsCon_y,

        'IsEs':IsEs}

print(plural(words))

上一篇 下一篇

猜你喜欢

热点阅读