¡Te damos la bienvenida a este reto!

1

Empezando con Python desde 0

Día 1

2

Variables, funciones y sintaxis básica

3

Tipos de datos: Numbers, Strings y Diccionarios

4

Playground - Retorna el tipo

Día 2

5

Operadores

6

Playground - Calcula la propina

Día 3

7

Condicionales

8

Playground - Averigua si un año es bisiesto

9

Ciclos

10

Playground - Dibuja un triangulo usando bucles

Día 4

11

Listas

12

Encuentra a los gatitos más famosos

13

Diccionarios

14

Obtén el promedio de los estudiantes

15

Tuplas

16

Obten la información de los paquetes

Día 5

17

Calcula la cantidad de letras en una oración

18

Encuentra el mayor palíndromo

Día 6

19

Sets

20

Encuentre la intersección de conjuntos

Día 7

21

List comprehension

22

Encuentra palabras con dos vocales

23

Dictionary Comprehension

24

Calcula la longitud de las palabras

Día 8

25

Funciones Lambda

26

Filtra mensajes de un user específico

27

Higher order functions

28

Crea tu propio método map

Día 9

29

Manejo de Errores y excepciones

30

Maneja correctamente los errores

31

Maneja las excepciones

Día 10

32

Playground - Crea un task manager usando closures

Día 11

33

Lectura de archivos de texto y CSV

Día 12

34

Programación orientada a objetos

35

Crea un auto usando clases

Día 13

36

Abstracción en Python

37

Playground - Crea un sistema de carrito de compras

38

Encapsulamiento en Python

39

Playground - Encapsula datos de los usuarios

Día 14

40

Herencia en Python

41

Playground - Jerarquía de animales usando herencia

Día 15

42

Polimorfismo en Python

43

Playground - Implementa un sistema de pagos

Día 16

44

Estructuras de datos en Python

45

Playground - Crea tu propia lista en python

46

Hash tables en Python

47

Playground - Implementación de una HashTable para Contactos

Día 17

48

Maps en Python

49

Playground - Crea un task manager con Maps

Día 18

50

Singly Linked List en Python

51

Playground - Implementación de una singly linked list

Día 19

52

Stacks en Python

53

Playground - Implementación de un stack

Día 20

54

Queues en Python

55

Playground - Implementación de una queue

Día 21

56

¡Lo lograste!

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

14 Días
6 Hrs
54 Min
22 Seg

Encuentra palabras con dos vocales

22/56

Aportes 55

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?


.
.

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


.
.
.
Listo! 🐍👌🏼
La primera versión me pareció super elegante pero hice la segunda para que fuera un poco mas legible jeje
.
.
.
.
.

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)

Una linea, list comprenhesion al limite.

.
.
.
.
.
.
.
.
Espero que les sirva, exitos.

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
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"])

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]


*
*
*
*
*

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
![](https://static.platzi.com/media/user_upload/image-be169351-5961-4e70-80e3-a4c38638d093.jpg)
Nuevamente, consulto: Alguien será tan amable de explicarme ¿Por qué no paso el test del playground? ```python 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 ```
![](https://static.platzi.com/media/user_upload/imagen-f5468e45-c6fe-4d2d-881c-c392b3717297.jpg)
![](https://static.platzi.com/media/user_upload/image-a66dc720-8d9e-4aa2-b156-0632e7607a61.jpg) 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 ```js 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: ```js 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 ```
```python def find_words_with_two_vowels(words): return [w for w in words if sum(l in 'aeiouAEIOU' for l in w) == 2] ```
i did it....!!!! ![](https://static.platzi.com/media/user_upload/image-9d784c25-2539-4362-9151-2005de0b22ae.jpg)
![](https://static.platzi.com/media/user_upload/escudo_anti_spoiler._neo-d8155f48-67a6-4b07-a1b2-e55934ea96ca.jpg) ```python def find_words_with_two_vowels(words): vocales= ["a","e","i","o","u","A","E","I","O","U"] num = 0 out = [] for word in words: for vocal in vocales: num = word.count(vocal) + num if num == 2: out.append(word) num = 0 return out ```
lo hice así, de tanto hacer prueba y prueba por fin lo pude hacer de esta manera: ![](https://static.platzi.com/media/user_upload/image-547d3634-9592-47a9-86a5-45cd34d966ca.jpg)![](https://static.platzi.com/media/user_upload/image-b6fcd8b5-df79-4db1-abc8-ad63dbca1a03.jpg)
lo hice después de tanto intentarlo: ![](https://static.platzi.com/media/user_upload/image-a1bee5e5-9f0e-419e-8db6-db2ac5fb09db.jpg)

Comparto aporte con comentarios

def find_words_with_two_vowels(words):
    # Tu código aquí 👈
    vocales = "aeiouAEIOU" 
    palabras_seleccionadas = [ palabra for palabra in words if sum(1 for letra in palabra if letra in vocales) == 2 ]
    print(palabras_seleccionadas)

🛡️🛡️Escudo anti-spoilers🛡️🛡️

Mi solución al reto:

def find_words_with_two_vowels(words):
  return [ w for w in words if sum(w.count(v) for v in "aeiouAEIOU") == 2]
def find_words_with_two_vowels(words):
  # Tu código aquí 👈
  new_list = [word for word in words if sum(1 for letra in word if letra in "aeiouAEIOU") == 2]
  return new_list

response = find_words_with_two_vowels([
  "hello",
  "Python",
  "world",
  "platzi"
])
print(response)
  • Lo primero que hago es crear un set con todas las vocales, tanto mayúsculas como minúsculas.
  • Luego creo la list comprehension de tal manera que me recorrar las palabras dadas.
  • Luego viene el gran detalle en donde la condición que tiene que cumplir la palabra es que tenga dos vocales.
  • Lo hago de la manera en que me sume 1 si la letra que está recorriendo está presente en el set vocales, y si el total de esa suma es igual a 2, entonces la palabra es tomada en la lista.
def find_words_with_two_vowels(words):
  vocales = set('aeiouAEIOU')
  palabras_two_vowels = [palabra for palabra in words if sum(1 for letra in palabra if letra in vocales) == 2]
  return palabras_two_vowels

Trate de hacerlo mas interactivo . Dando mas opciones al usuario de que lista elegir o el número de vocales:

Listas = int(input(“Elige la lista (1 o 2):”))
if Listas == 1:
Palabras = [“hello”,“Python”,“world”,“platzi”]
else:
Palabras = [“text”,“test”,“python”,“example”]

NVocal = int(input(“Elige el número de vocales por palabra:”))
def DosVocales(Palabras):
Resultado = []
for Palabra in Palabras:
a=Palabra.count(“a”)
e=Palabra.count(“e”)
i=Palabra.count(“i”)
o=Palabra.count(“o”)
u=Palabra.count(“u”)
Resultado = [print(Palabra) if a + e + i + o + u == NVocal else None]
DosVocales(Palabras)

No puedo creer que estuve un rato pensando en porqué no reconocían a todas las vocales creadas pero no consideré también las…


def find_words_with_two_vowels(words):
  vowels = ["a","e","i","o","u","A","E","I","O","U"]
  lista = []
  for word in words: 
    qt_vocals = [char for char in word if char in vowels]
    if len(qt_vocals) ==2:
      lista.append(word)

  return lista

Solución 😄…
Double Comprehension 😅😂
.

.
.
.
.

def find_words_with_two_vowels(words):
  return [
    word 
    for word in words
    if len([
      letter 
      for letter in word 
      if letter in "AEIOUaeiou"
      ]) == 2
    ]

Las list comprehensions me recuerdan un poco a las consultas SQL anidadas, viéndolas así se me hacen algo más simples.

Solución:

def find_words_with_two_vowels(words):
  return [w for w in words
    if sum(1 for c in w.lower()
      if c in "aeiou") == 2]

Les muestro mi solucion, me costo como 2 horitas pero siento que es la forma mas corta de obtener la respuesta
.
.
.
.
.
.
.
.
.

def find_words_with_two_vowels(words):
  vowels = 'aeiou'
  return [word for word in words if sum([word.lower().count(vowel) for vowel in vowels]) == 2 ]
def find_words_with_two_vowels(words):
    vowels=["a","e","i","o","u"]
    word_list=[]
    for word in words:
        num_vowels=len([letter for letter in word.lower() if letter in vowels])
        if num_vowels==2:
            word_list.append(word)
    return word_list

Este reto estuvo muy interesarnte me gusto mucho la impelemtacion.

.
.

def find_words_with_two_vowels(words):
  # Tu código aquí 👈
  vowels = ['a','e','i','o','u',]
  wordsTwoVowels = []
  
  for i, word in enumerate(words):
    conteo = [ letter for i, letter in enumerate(word) if letter.lower() in vowels ]
    wordsTwoVowels.append(words[i]) if len(conteo) == 2 else None

  return wordsTwoVowels


Mi solución:

def find_words_with_two_vowels(words):
  vowels='aeiou'
  words_with_two_vowels=[word for word in words if sum(1 for letter in word.lower() if letter in vowels)==2]
  return words_with_two_vowels
#SOLUCIÓN RETO:
"""
En este desafío, debes crear la lógica de la función find_words_with_two_vowels que 
encuentre las palabras que contienen exactamente dos vocales en una lista de palabras. 
Las vocales pueden ser tanto mayúsculas como minúsculas.
"""

def tiene_vocal(palabra):
    vocales = "aeiouAEIOU"
    lista_valores = [True if letra in vocales else False for letra in palabra]
    return lista_valores

def contar_vocales(palabra):
    palabra = tiene_vocal(palabra)
    contador_vocales = palabra.count(True)
    return contador_vocales

def find_words_with_two_vowels(words):
    return [word for word in words if contar_vocales(word) == 2]

print(find_words_with_two_vowels([
    "hello",
    "Python",
    "world",
    "platzi"
])
)

Me gusto mucho este ejercicio. Dejo a continuación mi respuesta.

def find_words_with_two_vowels(words):
  results = []
  for word in words:
    if sum([1 if letter.lower() in 'aeiou' else 0 for letter in [*word]]) == 2:
      results.append(word)
  return results
  pass


.
.
.
.
.
.
.


.
.
.
.
.

def find_words_with_two_vowels(words):
  vowels = "aeiouAEIOU"
  return [word for word in words if sum(map(word.count, vowels)) == 2]


.
.
.
.
.
.
.

def find_words_with_two_vowels(words):

  new_list = [word for word in words if sum(1 for letter in word if letter in 'AEIOUaeiou') >= 2]
  
  return new_list

result1 = find_words_with_two_vowels(["hEllo","Python","world","platzi"])
print(result1)

result2 = find_words_with_two_vowels(["text", "test", "python", "example"])
print(result2)

Mi solución, solo pasó la primera prueba


.
.
.
.
.
.
.
.
.
.

Mi solución:

def find_words_with_two_vowels(words):
  vowels = set("aeiouAEIOUáéíóúü")
  return [word for word in words if len([char for char in word if char in vowels]) == 2]


.
.
.
.

.
.
.

.
.
.

def find_words_with_two_vowels(words):
  vocales = [ 'a', 'e', 'i', 'o', 'u']
  return [ w  for w in words if len( [ l for l in w.lower() if l in vocales]) == 2]



.
.
.
.
.

.
.
.

.
.

.
.
.

.
.

.
.

.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.

.
.

def find_words_with_two_vowels(words):
  # Tu código aquí 👈
   return [word for word in words if len([letter for letter in word.lower() if letter in ['a','e','i','o','u'] ]) == 2]


Mi aporte usando la libreria de Regular Expressions:

import re
def find_words_with_two_vowels(words):
  return [w for w in words if len(re.findall('[aeiouAEIOU]', w))==2]

Para que el código sea más limpio y legible, el conteo de vocales lo separé en otra función.

def find_words_with_two_vowels(words):

  words_with_two_vowels = [word for word in words if contar_vocales(word) == 2 ]
  return words_with_two_vowels
  pass

def contar_vocales(cadena):
	contador = 0
	for letra in cadena:
		if letra.lower() in "aeiou":
			contador += 1
	return contador
def find_words_with_two_vowels(words):
    vowels = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']
    words_vowels = [word for word in words if sum(word.count(vowel) for vowel in vowels) == 2]
    return words_vowels
    pass

Mi resultado, estoy safisfecho en como me quedo
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

def find_words_with_two_vowels(words):
  return [i for i in words if sum( 1 for letter in i.lower() if 'aeiou'.count(letter)) == 2]

Las expresiones regulares salvando el día

.
.
.
.
.
.
.
.

import re
def find_words_with_two_vowels(words):
  patron = r'[aeiouAEIOU]'
  listado = [word for word in words if len(re.findall(patron, word)) == 2]
  return listado
def find_words_with_two_vowels(words):
  return [word for word in words if count_vowels(word)==2]

def count_vowels(word):
  return sum(1 if v in "aeiouAEIOU" else 0 for v in word)

print(find_words_with_two_vowels([
  "hello",
  "Python",
  "world",
  "platzi"
]))


.
.
.
.
.
.
.

Mi aporte

.
.
.
.

def find_words_with_two_vowels(words):
    
    vocales = ['a','e','i','o','u','A','E','I','O','U']
    lista_palabras = [palabra for palabra in words if sum(1 for letra in palabra if letra in vocales)==2]
    
    return lista_palabras
    pass


resultado = find_words_with_two_vowels([
  "hello",
  "Python",
  "world",
  "platzi"
])

print(resultado)

resultado = find_words_with_two_vowels([
  "text", "test", "python", "example"
])

print(resultado)```
def find_words_with_two_vowels(words):
  # Tu código aquí 👈
  output = []
  output = [word for word in words if len(tuple(letter for letter in word if letter in "aeiouAEIOUáéíóúÁÉÍÓÚ")) == 2]
  return output
  pass

# Tests
Input= find_words_with_two_vowels([
  "hello",
  "Python",
  "world",
  "platzi"
])

print(Input) #Output: ['hello', 'platzi']

Input= find_words_with_two_vowels(["text", "test", "python", "example"])

print(Input) #Output: []

Input= find_words_with_two_vowels(["Apple"])

print(Input) #Output: ['Apple'] 


o
o
o
o
o
o
o

def find_words_with_two_vowels(words):
  lista = []
  vocales = ['a','e','i','o','u','A','E','I','O','U']
  for palabra in words:
    numero_vocales = 0
    for letra in palabra:
      if letra in vocales:
        numero_vocales += 1
    if numero_vocales == 2:
      lista.append(palabra)
  return lista

print(find_words_with_two_vowels([
  "hello",
  "Python",
  "world",
  "platzi"
]))

print(find_words_with_two_vowels(["text", "test", "python", "example"]))

Mi solución es la menos elegante de todas, pero funciona. quise hacerlo por list comprehension pero no supe y a la final lo hice a lo bruto
*
*
*
*
*
*

def find_words_with_two_vowels(words):
  # Tu código aquí 👈
  list_of_words = []
  for word in words:
    contador = 0
    for letter in word.upper():
      if letter == "A":
        contador +=1
      elif letter =="E":
        contador +=1
      elif letter =="I":
        contador +=1
      elif letter == "O":
        contador +=1
      elif letter == "U":
        contador +=1
    if contador == 2:
      list_of_words.append(word)  
  return list_of_words


Quise practicar Expresiones Regulares (Regex) en una sola línea:


.
.
.
.


.
.
.
.
.

def find_words_with_two_vowels(words):
  # Tu código aquí 👈
  valid_words = []
  vowels = ['a','e','i','o','u','A','E','I','O','U']

  for word in words:
    counter = 0
    for letter in word:
      if letter in vowels:
        counter+= 1
    if counter == 2:
      valid_words.append(word)
  return valid_words
```txt def find_words_with_two_vowels(words): vocales= ["a","e","i","o","u","A","E","I","O","U"] num = 0 out = [] for word in words: for vocal in vocales: num = word.count(vocal) + num if num == 2: out.append(word) num = 0 return out ```
undefined