Google+ Seguidores

miércoles, 25 de julio de 2018

Ejercicios en Python con Funciones Incorporadas (map, zip, enumerate, reduce, filter)

Introducción:

Hola amigos de Mi Diario Python, les doy la bienvenida nuevamente al mejor blog para Aprender Python.

En este artículos, pondremos a prueba nuestras habilidades, y a ejercitar nuestra lógica de programador. Resolveremos algunos problemas en Python utilizando funciones incorporadas (map, zip, enumerate, reduce, filter). ¿Preparado? ¿Listos? Comencemos.

Resultado de imagen para python

Problema #1:

Utilizar la función incorporada map() para crear una función que retorne una lista con la longitud de cada palabra (separas por espacios) de una frase. La función recibe una cadena de texto y retornara una lista.

def longitud_palabras(frase): # Función
    palabra_len = list(map(len, frase.split())) # Longitud de cada palabra
    return palabra_len # Retornar resultado

longitud_palabras('Hola Luis, como estas?') # Prueba de la función


Problema #2:

Crear una función que tome una lista de dígitos y devuelva al número al que corresponden. Por ejemplo [1,2,3] corresponde a el numero ciento veintitrés (123). Utilizar la función reduce.

from functools import reduce

def digitos_a_numero(digitos):
    return reduce(lambda x,y:x*10 + y,digitos)

digitos_a_numero([4,3,9,2])

4392

Problema #3:

Crear una función que retorne las palabras de una lista de palabras que comience con una letra en especifico. Utilizar la función filter.


def filtro_palabras(lista_palabras, letra):
    return list(filter(lambda word:word[0]==letra,lista_palabras))

filtro_palabras(['Perro', 'Gato', 'Pelota', 'Manzana', 'Libro', 'Python'], 'P')

['Perro', 'Pelota', 'Python']

Problema #4:

Realizar una función que tome una lista de comprensión para devolver una lista de la misma longitud donde cada valor son las dos cadenas de L1 y L2 concatenadas con un conector entre ellas. Ejemplo: Listas: ['A', 'a'] ['B','b']  Conector: '-' Salida: ['A-a'] ['B-b']. Utilizar la función zip.

def concatenacion(L1, L2, connector):
    return [word1+connector+word2 for (word1,word2) in zip(L1,L2)]

concatenacion(['A', 'a'],['B','b'],'-')

['A-a', 'B-b']

Problema #5:

Realizar una función que tome una lista y retorne un diccionario que contenga los valores de la lista como clave y el índice como el valor. Utilizar la función enumerate.

def d_list(L):
    return {key:value for value,key in enumerate(L)}

d_list(['a','b','c','d','e'])

{'a': 0, 'b': 1, 'c': 2}

Problema #6:

Realizar una función que retorne el recuento de la cantidad de elementos en la lista cuyo valor es igual a su índice. Utilizar la función enumerate.

def count_match_index(L):
    return len([num for count,num in enumerate(L) if num==count])

count_match_index([0,2,2,1,5,5,6,10])

4

Excelente, espero que te sea de utilidad y puedes implementar estos conocimientos para resolver otros problemas.

Mi nombre es Luis, y fue un placer compartir mis conocimientos con todos ustedes :D.

4 comentarios :
Write comentarios
  1. Hola, excelente artículo con buenos ejemplos, pero yo soy principiante... no podrías explicarlos? Gracias

    ResponderEliminar
  2. En el problema #4 se debe usar (L1, L2) sin zip en la lista por comprensión

    ResponderEliminar

Tu comentario es importante y nos motiva a seguir escribiendo...

Powered by Blogger .