Tengo la declaración IF de la siguiente manera:

...
if word.endswith('a') or word.endswith('e') or word.endswith('i') or word.endswith('o') or word.endswith('u'):
...

Aquí tuve que usar 4 RUP para cubrir todas las circunstancias. ¿Hay alguna forma de simplificar esto? Estoy usando Python 3.4.

0
joe wong 9 may. 2016 a las 08:58

4 respuestas

La mejor respuesta

Tratar

if word[-1] in ['a','e','i','o','u']:

Donde la palabra [-1] es la última letra

2
Hafees Kazhunkil 9 may. 2016 a las 06:03

word.endswith(c) es igual que word[-1] == c, así que:

VOWELS = 'aeiou'

if word[-1] in VOWELS:
    print('{} ends with a vowel'.format(word)

Lo haré No es necesario construir una lista, tupla, conjunto u otra estructura de datos: solo pruebe la pertenencia a una cadena, en este caso VOWELS.

0
mhawke 9 may. 2016 a las 06:07

Utilice any

>>> word = 'fa'
>>> any(word.endswith(i) for i in ['a', 'e', 'i', 'o', 'u'])
True
>>> word = 'fe'
>>> any(word.endswith(i) for i in ['a', 'e', 'i', 'o', 'u'])
True
>>> 
3
Avinash Raj 9 may. 2016 a las 06:01

Simplemente:

>>> "apple"[-1] in 'aeiou'
True
>>> "boy"[-1] in 'aeiou'
False
1
AKS 9 may. 2016 a las 06:23