IIC2233 / Syllabus-2023-2

69 stars 13 forks source link

semana 3 - propuesto 7 #211

Closed Shoesuke closed 1 year ago

Shoesuke commented 1 year ago

Prerrequisitos

(Marcar colocando una X entre los corchetes los ítems que ya hiciste, así: "[X]")

Duda

Holaa, en el siguiente propuesto, no entiendo como es que usando map y filter podré hacer lo que me piden, tipo no veo la forma en que esto podría salir

Captura de pantalla 2023-09-10 202301
pacalein commented 1 year ago

Hola!

map se utiliza entregando al menos dos parámetros de la siguiente forma: map(función, iterable). Sabemos que los strings son iterabais ya que se pueden recorrer uno a uno todos sus elementos. Lo que hace map entonces es asociar esa función que elijas (creada por ti o existente) con cada uno de los elementos del iterable y transformando cada uno de esos elementos según la función. Luego retornará un objeto del tipo map, el cual deberás castear si quieres trabajar sobre el. Por ejemplo, map podría retornar el mismo string s pero si a cada uno de los caracteres le aplicaras s.upper().

Respecto a filter, este nos sirve para evaluar un valor booleano resultante de una función aplicada a un iterable. Usado de la siguiente forma: filter(funcion, iterable) la funcion se aplicará sobre cada uno de los elementos del iterable resultando un booleano True o False. Todos los elementos que pasaron por la función y evaluaron True, se retornan en una estructura tipo generador.

Para resolver el ejercicio existen muchas posibilidades (como siempre en programación). Trata de aplicar cada una de ellas por separado para familiarizarte con lo que hacen. Luego, intenta resolver el sub problema en donde dos frases comparten caracteres exactamente en el mismo índice. Luego aplica esta solución a más de una frase.

Espero haberte ayudado a entender mejor la lógica detrás de cada una de las funciones. Me cuentas cuando vayas resolviéndolo y recuerda descomponer el gran problema en mini problemas. Fran

Shoesuke commented 1 year ago

Holaa profe, se me ocurrió utilizar el map para que en caso de que los caracteres de los textos sean iguales deja el caracter, y si no deja una lista vacía, para posteriormente usar filter y deshacerme de estas listas vacias y obtener finalmente la lista con todas los caracteres que son iguales, y así hacerle un len() para ver la cantidad, no sé si esto estará bien o sea algo parecido a lo que esperan que haga

pacalein commented 1 year ago

Me parece sensata la solución. Mientras te "fuerces" a usar ambos filter y map, cumple con las expectativas :D.