Encuentra palabras con dos vocales
Clase 22 de 56 • 21 Días de Python
Contenido del curso
Clase 22 de 56 • 21 Días de Python
Contenido del curso
Emilio Sala
Oscar Rodriguez
Francisco Jesús Eslava Fernández
Jordan Anderson Huayhua Morales
Maga Hernandez
Diego Alessandro Galvez Rodriguez
Fernando Jesús Núñez Valdez
Eduardo Peña Ramos
jean.joven
Maga Hernandez
Maga Hernandez
Gabriel Andrés Montiel Hermosa
Jordan Anderson Huayhua Morales
Jhon Sebastián Monsalve Gomez
Jordan Anderson Huayhua Morales
Orlando Sánchez
iecgerman .
Orlando Sánchez
Andres Caro
Angel Carballeira
Samuel Medardo Hernández Ortiz
Emmanuel Paiva
Omar Cuarenta
Diego Cruz
Francisco Pin
Rommel Pumisacho
Eduardo Monzón
Erick Infante
Dender Adrian Pernia Valero
Rosemberg Porras Mancilla
Enrique Barrera
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