Listas, Diccionarios y Operación sobre ellos

Listas

Ejercicios con iteraciones explícitas

    1. maximo(numeros): realizar una función que dada una lista de números, retorna el máximo.
    2. promedio(numeros): Realizar una funcion que dada una lista de números, retorna el promedio.
    3. multiplicados(numeros, n): realizar una función que dada una lista de números y otro número, retorna una nueva lista donde cada elemento es el elemento de la original multiplicado por el número dado.
    4. mayoresA(numeros, n): realizar una función que dada una lista de números y otro número dado, retorna otra lista que solo contiene aquellos elementos mayores al dado.
    5. sumaDuplas(tuplas): Realizar una función que dada una lista de tuplas (estructura con dos elementos), retorne una nueva lista que en lugar de contener las tuplas, contiene la suma de sus componentes. Ej: dado [ (2,1), (4,5), (10,2) ] retorna [3, 9, 12]
    6. iniciales(nombres): Realizar una función que dada una lista de strings (nombres por ejemplo), retorna una nueva lista que contiene las iniciales (es decir el primer caracter) de cada string.
    7. vocales(texto): Realizar una función que dado un texto (string) retorna solo sus vocales.
    8. aplanada(listaDeListas): Dada una lista de listas retorna una lista con la union de todos los elementos de las sublistas. Ej:
      1. [[1,2,3], [4,5,6], [7,8,9]] -> [1,2,3,4,5,6,7,8,9]
      2. ["Mi", "Viejo", "Tio", "Tom"] -> ['M', 'i', 'V', 'i', 'e', 'j', 'o', 'T', 'i', 'o', 'T', 'o', 'm']
    9. sinDuplicados(): Realizar una función que dada una lista, retorna otra nueva lista que solo contiene elementos “no duplicados”, sin alterar la lista original.
    10. indicesDeElementoEn(n, lista): Realizar una función que dada una lista y un número "n", retorna otra lista con los índices de todas las ocurrencias de "n" en la lista. Ejemplos:
      1. indiceDeEn(1, [1,4,1,4,6,5,5,5,4,2,3]) -> [0, 2]
      2. indiceDeEn(3, [1,4,1,4,6,5,5,5,4,2,3]) -> [10]
      3. indiceDeEn(5, [1,4,1,4,6,5,5,5,4,2,3]) -> [5, 6, 7]

Filter, Map, Reduce

Realizar los mismos ejercicios que vimos en "Ejercicios con iteraciones explícitas", pero utilizando las funciones de orden superior filter, map, reduce, en lugar de codificarlo con iteraciones (for y variables locales)

    1. maximo()
    2. promedio()
    3. multiplicados()
    4. mayorA()
    5. sumaTuplas()
    6. iniciales(texto):
    7. vocales(texto): recordar que las funciones de orden superior también se pueden utilizar con texto en lugar de listas. El String se comporta igual que la lista para algunas operaciones.
    8. aplanada(listaDeListas)
    9. sinDuplicados(): Pista: un elemento en la posición "i" está duplicado, si está incluido en la sublista[0:i], es decir en la sublista con los elementos ya procesados.
    10. indicesDeElementoEn(n,lista): Definida más arriba. Ayuda: pueden utilizar la función enumerate(lista) que data una lista retorna otra lista con tuplas (indice, elemento). Ver acá para más información del enumerate

Listas Por Comprensión

Realizar las siguientes funciones ya antes descriptas en los ejercicios anteriores, utilizando listas por comprensión

    1. multiplicados(numeros, n):
  1. mayorA(numeros, cota):
  2. sumaTuplas(tuplas)
  3. iniciales(texto):
    1. vocales(texto): cuál es la diferencia con la versión anterior con funciones de orden superior ?
    2. sinDuplicados(): vale la misma pista que en el ejercicio de filter/map/reduce
  4. indicesDeElementoEn(n, lista)
    1. indicesDeElementos(elementos, lista): similar al ejercicio anterior, solo que esta vez en lugar de pasarle un solo elemento a consultar por sus índices de ocurrencia, queremos saber esa información para muchos (lista "elementos"). Ej:
      1. indicesDeElementos([1,3,5], [1,4,1,4,6,5,5,5,4,2,3]) -> [[0, 2], [10], [5, 6, 7]]
      2. Fíjense que ahora retorna una lista de listas. Cada elemento es una lista con los índices de ocurrencias del elemento consultado.
      3. Pista: pueden utilizar la función indicesDeElementEn(n, lista) para el cálculo de cada elemento de la lista resultado (lista anidada).
    2. aplanada(): ya definido arriba. Ayuda: "por cada elemento de cada sublista". Repasar el apunte de listas por comprensión.

Resoluciones

Adjunto a esta página hay un zip que contiene el "export" de un proyecto Python en eclipse. Éste proyecto tiene las implementaciones de todos estos ejercicios. En general hay un solo archivo por ejercicio que contiene las tres versiones: iterativa, con funciones de orden superior, y por comprensión.