¡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

Filtra mensajes de un user específico

26/56

Aportes 40

Preguntas 0

Ordenar por:

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

Mi solución 💻 🐍


.
.
.
.
.

Para este ejercicio decidí resolverlo de dos formas, ambas con la función filter y con lambda la diferencia entre ambas soluciones es como implementé la función lambda.
.
.
.

Forma #1

Creando la función anónima directamente en el primer parámetro de la función filter

def filter_user_messages(messages, user):
  filtered = list(filter(lambda msg: msg["sender"].upper() == user.upper(), messages))
  return filtered

Forma #2

Las funciones lambda al ser anónimas pueden asignarse a una variable y esa variable utilizarla como una función tal cual. Así que para la 2da forma asigne la función de filtrado a una variable llamada filter_by_user y esa “variable” (que en realidad es una función) la pase en el primer parámetro de filter.

def filter_user_messages(messages, user):
  filter_by_user = lambda msg: msg["sender"].upper() == user.upper()
  filtered = list(filter(filter_by_user, messages))
  return filtered

📢NOTA: filter recibe dos parámetros, la función que realiza el filtrado y la lista de los elementos que se van a filtrar. Es importante notar que al mandar el parámetro filter_by_user va sin paréntesis () por que nosotros no estamos ejecutando la función, sino que filter internamente lo hace, a esto se le llama higher order functions y se describen en la lectura que sigue.


.
.
.
.
.
.
.
.
.

def filtrar_mensajes_usuario(mensajes, usuario):

  # tambien puede ir list() antes de filter()
  filtrado_mensajes = filter(lambda mensaje: mensaje['sender'] == usuario, mensajes) # aquí el orden importa, si pongo primero mensajes y despues usuario me marca error
  return list(filtrado_mensajes) # ojo al no poner list si no nos imprime un iterable <filter object at 0x7fb787657790>
  
respuesta = filtrar_mensajes_usuario([
  {'sender': 'Alice', 'content': 'Hola, ¿cómo estás?'},
  {'sender': 'Alice', 'content': '¿Quieres tomar un café?'},
  {'sender': 'Alice', 'content': 'Nos vemos luego.'}
], usuario = 'Alice') # ojo con la coma antes de usuario
# podemos tambien quitar usuario y dejar solo 'Alice' tambien podemos usar upper() por si recibimos mayusculas como lo hizo Paola Camacho Alpiztle

print(respuesta)


.
.
.
.
.
.
.
.
.
.

Mi código:

def filter_user_messages(messages, user):
  return list(filter(lambda message: message['sender'] == user, messages))
Hice tres soluciones para este problema, la primera de ellas es como las instrucciones indicaros, utilicé las funciones lambda en conjunto con la función. **Utilizando lambda:** ```python filter_user_messages = lambda messages, user: list(filter(lambda messages: user == messages['sender'], messages )) ``` La segunda forma lo hice utilizando funciones normales junto con list comprehension: **Con función normal y list comprehension:** ```python def filter_user_messages(messages, user): return [message for message in messages if message['sender'] == user] ``` y finalmente combine las funciones lambda junto con list comprehension ```python filter_user_messages = lambda messages, user: [message for message in messages if message['sender'] == user] ``` **¿Qué forma les gustó más? ¡espero sus comentarios!**


.
.
.
.
.

<code> 
  # Para entender el código de filter(), repasa este
  for msg in messages:
      if msg['sender'] == user:
        print(msg)
<code> 
def filter_user_messages(messages, user):
  return list(filter(lambda message: message['sender'] == user, messages))

user = 'Alice'
res = filter_user_messages(messages, user)
print(res)
messages = [
  {'sender': 'Alice', 'content': 'Hola, ¿cómo estás?'},
  {'sender': 'Bob', 'content': '¡Bien, gracias!'},
  {'sender': 'Alice', 'content': '¿Quieres tomar un café?'},
  {'sender': 'Charlie', 'content': 'Hola a todos.'},
  {'sender': 'Alice', 'content': 'Nos vemos luego.'}
]

user = 'Bob'

def filter_user_messages(messages, user):
  # Tu código aquí 👈
  mensajes = list(filter(lambda x: x["sender"] == user, messages))
  print(mensajes)
  
if __name__ == "__main__":
    filter_user_messages(messages,user)

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

Mi solución al reto:

def filter_user_messages(messages, user):
 return list(filter(lambda m: m['sender'] == user , messages))

solution

def filter_user_messages(messages, user):
    resultdict=[]
    resultdict = list(filter(lambda message: message["sender"] == user, messages))
    #print(resultdict) 
    return(resultdict)

if __name__ == '__main__':
    messages = [
       {'sender': 'Alice', 'content': 'Hola, ¿cómo estás?'},
       {'sender': 'Bob', 'content': '¡Bien, gracias!'},
       {'sender': 'Alice', 'content': '¿Quieres tomar un café?'},
       {'sender': 'Charlie', 'content': 'Hola a todos.'},
       {'sender': 'Alice', 'content': 'Nos vemos luego.'}
    ]

    user = 'Alice'
    response = filter_user_messages(messages, user)
    print(response)

def filter_user_messages(messages, user):
  # Tu código aquí 👈
  new_messages = []

  for message in messages:
    #print(message)
    if message['sender'] == user:
      #print(message)
      new_messages.append(message)
  return new_messages

messages = [
  {'sender': 'Alice', 'content': 'Hola, ¿cómo estás?'},
  {'sender': 'Bob', 'content': '¡Bien, gracias!'},
  {'sender': 'Alice', 'content': '¿Quieres tomar un café?'},
  {'sender': 'Charlie', 'content': 'Hola a todos.'},
  {'sender': 'Alice', 'content': 'Nos vemos luego.'}
]

user = 'Alice'
response = filter_user_messages(messages, user)
print(response)

Esta es mi solución
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

def filter_user_messages(messages, user):
  return list(filter(lambda message: message["sender"] == user, messages))
"""
Function lambda with filter function for filter
messages from a specific user
"""

def filter_user_messages(messages, user):
  """Function to filter messages by user"""
  return list(filter(lambda message: message["sender"] == user,messages))


if __name__ == '__main__':
  """Start Function"""
  
  messages = [
    {'sender': 'Alice', 'content': 'Hola, ¿cómo estás?'},
    {'sender': 'Bob', 'content': '¡Bien, gracias!'},
    {'sender': 'Alice', 'content': '¿Quieres tomar un café?'},
    {'sender': 'Charlie', 'content': 'Hola a todos.'},
    {'sender': 'Alice', 'content': 'Nos vemos luego.'}
  ]
  
  user = 'Alice'
  
  print(filter_user_messages(messages, user))

messages = [ {‘sender’: ‘Alice’, ‘content’: ‘Hola, ¿cómo estás?’}, {‘sender’: ‘Bob’,‘content’: ‘¡Bien, gracias!’}, {‘sender’: ‘Alice’,‘content’:’¿Quieres tomar un café?’}, {‘sender’: ‘Charlie’,‘content’: ‘Hola a todos.’}, {‘sender’: ‘Alice’,‘content’: ‘Nos vemos luego.’}]
user = input(“Ingrese el nombre del Usuario(Alice,Bob,Charlie):”)
def filter_set(messages,user):
def iterator_func(x):
for v in x.values():
if user in v:
return True
return False
return filter(iterator_func, messages)
print(dict(filter_set(messages,user)))

Solución 😄.
.

.
.
.
.

def filter_user_messages(messages, user):
  return list(filter(lambda x: x["sender"] == user,messages))

Mi resultado
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

def filter_user_messages(messages, user):
  # Tu código aquí 👈
  return list(filter(lambda u: u['sender'] == user, messages))
  pass

def filter_user_messages(messages, user):
  return list(filter(lambda message: message["sender"] == user, messages))
def filter_user_messages(messages, user):
  
    return list(filter(lambda message:message['sender']==user,messages))

Definitivamente las funciones lambda son una funcionalidad muy util.

def filter_user_messages(messages, user):
  messagesUser =  list(filter(lambda x, : x["sender"] == user , messages ))
  return messagesUser


Les dejo mi solución:

def filter_user_messages(messages, user):
  return list(filter(lambda message:message['sender']==user,messages))


.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

def filter_user_messages(messages, user):
  # Tu código aquí 👈
  return list(filter(lambda mail: mail['sender'] == user, messages))

Dejo mi solución a continuación.

def filter_user_messages(messages, user):
  return list(filter(lambda usr: usr['sender'] == user, messages))
  pass

Esta es mi respuesta:

def filter_user_messages(messages, user):

  user_messages=[]

  user_messages.append(list(filter(lambda messages: messages['sender'] == user, messages)))
    
  return user_messages


.
.
.
.
.
.

.
.

.
.
.
.

Mi resultado
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

def filter_user_messages(messages, user):
  return list(filter(lambda item: item['sender'] == user,messages))


.
.
.
.
.
.
.

def filter_user_messages(messages, user):
  filter_messages = list(filter(lambda msg: msg['sender'] == user, messages))
  return filter_messages

messages = [
  {'sender': 'Alice', 'content': 'Hola, ¿cómo estás?'},
  {'sender': 'Bob', 'content': '¡Bien, gracias!'},
  {'sender': 'Alice', 'content': '¿Quieres tomar un café?'},
  {'sender': 'Charlie', 'content': 'Hola a todos.'},
  {'sender': 'Alice', 'content': 'Nos vemos luego.'}
]

user = 'Alice'

result = filter_user_messages(messages, user)

print(result)

Aquí mi solución, tengo que estudiar más como funciona lambda


.
.
Listo! 🐍👌🏼
.
.
.
.
.
.

def filter_user_messages(messages, user):

  return list(filter(lambda x: x["sender"].upper() == user.upper(), messages))

Gracias a la aportación de Paola Camacho que me dió luz 🙏🏼

Mi aporte:

def filter_user_messages(msgs, usr):
  return list(filter(lambda s: s['sender'] == usr, msgs))


*
*
*

def filter_user_messages(messages, user):
    return list(filter(lambda x: x["sender"] == user, messages))
    pass

Aqui mi solucion:
.
.
.
.
.
.
.
.
.

def filter_user_messages(messages, user):
  # Tu código aquí 👈
  result = list(filter(lambda x: x['sender'] == user, messages))
  return result
def filter_user_messages(messages, user):
  result = lambda msg: msg["sender"] == user 
  return list(filter(result, messages))


o
o
o
o
o
o
def filter_user_messages(messages, user):
lista = [mensaje for mensaje in messages if mensaje[‘sender’] == user ]
return lista

messages = [
{‘sender’: ‘Alice’, ‘content’: ‘Hola, ¿cómo estás?’},
{‘sender’: ‘Bob’, ‘content’: ‘¡Bien, gracias!’},
{‘sender’: ‘Alice’, ‘content’: ‘¿Quieres tomar un café?’},
{‘sender’: ‘Charlie’, ‘content’: ‘Hola a todos.’},
{‘sender’: ‘Alice’, ‘content’: ‘Nos vemos luego.’}
]

user = 'Alice’
print(filter_user_messages(messages, user))

mi codigo
*
*
*
*
*
*

def filter_user_messages(messages, user):
  # Tu código aquí 👈
  return list(filter(lambda message:message['sender']==user, messages))

Hint: help(filter) Return an iterator yielding those items of iterable for which function(item) is true. If function is None, return the items that are true.
.
Quiere decir que el ya itera, no tenemos que usar el for-loop para iterar


.
.
.


.
.
.

def filter_user_messages(messages, user):
  return [i for i in messages if i['sender']==user]


.
.
.
.
.


.
.
.
.
.

def filter_user_messages(messages, user):
  response = list(filter(lambda x: x['sender'] == user, messages))
  return response


*
*
*
*
*

def filter_user_messages(messages, user):
  filtered_messages = list(filter(lambda msg: msg['sender'] == user, messages))
  return filtered_messages


.
.

def filter_user_messages(messages, user):
   return list(filter(lambda message: message['sender'] == user, messages))
undefined