def find_words_with_two_vowels(words): vowels = "aeiouAEIOU" result = [] for word in words: num_vowels = 0 for char in word: if char in vowels: num_vowels += 1 if num_vowels == 2: result.append(word) return result
esta fue mi primera solución pero me di cuenta que no estaba utilizando list comprehension así que intenté comprimir el codigo resultando en la funcion super sayayin 2
def find_words_with_two_vowels(words): vowels = "aeiouAEIOU" result = [] for word in words: num_vowels = sum(1 for char in word if char in vowels) if num_vowels == 2: result.append(word) return result
para finalmente culminar en la version super sayayin 3
def find_words_with_two_vowels(words): vowels = "aeiouAEIOU" return [word for word in words if sum(1 for char in word if char in vowels) == 2]
aunque la primera me parece la más legible
Excelente!, me sirvió mucho tu aporte porque estaba algo perdido para hacerlo con list comprehension
def find_words_with_two_vowels(words): #usando list comprehension respuesta = [i for i in words if sum(1 for i in i if i in "aeiouAEIOU") == 2] #retorna respuesta return (respuesta)
un poco mas legible 😅
def find_words_with_two_vowels(words): #usando list comprehension respuesta = [palabra for palabra in words if sum(1 for letra in palabra if letra in "aeiouAEIOU") == 2] #retorna respuesta return (respuesta)
Está genial, creo que el más elegante que he visto en este reto. Solo que utilizar mucho el carácter " i " como variable en todo momento podría resultar algo confuso. Por ejemplo yo cambiaría las "_ i _" direccionadas a las vocales con una variable llamada "vow" :
def find_words_with_two_vowels(words): #usando list comprehension respuesta = [i for i in words if sum(1 for vow in i if vow in "aeiouAEIOU") == 2] #retorna respuesta return (respuesta)
excelente no sabia que se podia hacer doble list comprenhension.....
Una linea, list comprenhesion al limite.
Same bro, hahahaa!
def find_words_with_two_vowels(words): return [ word for word in words if (word.lower().count('a') + word.lower().count('e') + word.lower().count('i') + word.lower().count('o') + word.lower().count('u')) == 2 ]
LOL. Funciona.
def find_words_with_two_vowels(words): lista = [ i for i in words if sum(1 for letra in i.lower() if letra in "aeiou") ==2] return lista
me gusto este codigo porque no usastes map... excelente
lo unico es que te queria comentar que se pide que la funcion reciba una lista, y tu codigo no lo recibe... quedaria perfecto si ajustas ese detallito....
def find_words_with_two_vowels(words): words_with_two_vowels = [word for word in words if (word.lower().count("a") + word.lower().count("e") + word.lower().count("i") + word.lower().count("o") + word.lower().count("u")) == 2] return words_with_two_vowels find_words_with_two_vowels(["text", "test", "Apple", "example"])
Está bacán porque está diferente pero por otro lado ese list comprehension se vuelve un poco largo
aqui mi codigo: . . . . . . .
def find_words_with_two_vowels(words): # Tu código aquí 👈 return [word for word in words if word.lower().count('a') + word.count('e') + word.count('i') + word.count('o')+ word.count('u') == 2]
Está bacán pero el list comprehension ya se ve algo largo
def has_two_vowels(word): vowels = ["a", "e", "i" , "o", "u", "A", "E", "I", "O", "U"] list_letters = [] for letter in word: if letter in vowels: list_letters.append(letter) if len(list_letters) == 2: return True else: return False def find_words_with_two_vowels(words): new_list = [word for word in words if has_two_vowels(word)] return new_list
Orlando apoco si te salió con tu solución???
Hola, en tu codigo tienes una función recursiva, se esta llamando ella misma siempre. has_two_vowels
Mi solución utilizando expresiones regulares
def find_words_with_two_vowels(words): # Tu código aquí 👈 vowels = "aeiouAEIOU" new_words = [] for word in words: count_vowels = sum([1 for letter in word if letter in vowels]) if count_vowels == 2: new_words.append(word) return new_words
def find_words_with_two_vowels(words): vocales = 'aeiouAEIOU' return [word for word in words if sum(1 for char in word if char in vocales) == 2] ```def find\_words\_with\_two\_vowels(words): vocales = 'aeiouAEIOU' return \[word for word in words if sum(1 for char in word if char in vocales) == 2]
def find_words_with_two_vowels(words): # Tu código aquí 👈 return [(word) for word in words if (sum(1 for w in word if w in 'aeiouAEIOU')) == 2] pass ```def find\_words\_with\_two\_vowels(words): # Tu código aquí 👈 return \[(word) for word in words if (sum(1 for w in word if w in 'aeiouAEIOU')) == 2]pass
puedes escribir todo en 1 linea pero me parece una mala practica dado que se hace dificil de leer y entender.
Nuevamente, consulto:
Alguien será tan amable de explicarme ¿Por qué no paso el test del playground?
def find_words_with_two_vowels(words): result = [] vowels = "aeiouAEIOU" for word in words: cant = 0 for letter in word: if letter in vowels: cant += 1 if cant == 2: result.append(word) return result
Yo lo realice similar a los demas compañeros solo que en vez de hacer el sum, utilicé el len pero creo que por tema de memoria, sale mejor con el sum
vowels={vowel for vowel in "AEIOUaeiou"} def find_words_with_two_vowels(words): return [ word for word in words if len(list(letter for letter in word if letter in vowels)) == 2 ]
mi manera:
def find_words_with_two_vowels(words): out=[] lista=[palabra for palabra in words if (palabra.count("a")+palabra.count("e")+palabra.count("i")+palabra.count("o")+palabra.count("u")+palabra.count("A")+palabra.count("E")+palabra.count("I")+palabra.count("O")+palabra.count("U"))==2 ] return lista