隆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

Encuentra palabras con dos vocales

22/56

Aportes 45

Preguntas 0

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.


.
.

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):
  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
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

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):
    return [word for word in words if sum(word.lower().count(vocal) for vocal in "aeiou") == 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(鈥淓lige la lista (1 o 2):鈥))
if Listas == 1:
Palabras = [鈥渉ello鈥,鈥淧ython鈥,鈥渨orld鈥,鈥減latzi鈥漖
else:
Palabras = [鈥渢ext鈥,鈥渢est鈥,鈥減ython鈥,鈥渆xample鈥漖

NVocal = int(input(鈥淓lige el n煤mero de vocales por palabra:鈥))
def DosVocales(Palabras):
Resultado = []
for Palabra in Palabras:
a=Palabra.count(鈥渁鈥)
e=Palabra.count(鈥渆鈥)
i=Palabra.count(鈥渋鈥)
o=Palabra.count(鈥渙鈥)
u=Palabra.count(鈥渦鈥)
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
undefined