TP5 - Trabajo Práctico 5

Completar el trabajo práctico en GitHub Classroom

Link al TP 5

TP5 - Trabajo Práctico 5

Temas evaluados

Listas, operaciones con listas, acceso por índices, manipulación de elementos, iteración, funciones de listas, listas anidadas.


Ejercicios

Ejercicio 1 — exercise_list_length.py

Archivo de test: test_tp5_list_length.py

Conceptos: Función len, listas básicas.

Consigna: Crear una función que retorne la cantidad de elementos en una lista.

Ejemplo: Para lista = [1, 2, 3, 4, 5] la salida esperada es:

5

Para lista = [] la salida esperada es:

0

Ejercicio 2 — exercise_get_element.py

Archivo de test: test_tp5_get_element.py

Conceptos: Acceso por índice, validación de rangos.

Consigna: Crear una función que retorne el elemento en la posición indicada por el índice. Si el índice está fuera de rango (positivo o negativo), la función debe retornar None en lugar de generar un error.

Ejemplo: Para lista = [10, 20, 30] e indice = 1 la salida esperada es:

20

Para lista = [10, 20, 30] e indice = 10 la salida esperada es:

None

Para lista = [10, 20, 30] e indice = -1 la salida esperada es:

30

Ejercicio 3 — exercise_add_elements.py

Archivo de test: test_tp5_add_elements.py

Conceptos: insert, append, modificación de listas.

Consigna: Crear una función que agregue el elemento 'Pink' al principio de la lista y el elemento 'Yellow' al final de la lista. La función debe retornar la lista modificada.

Ejemplo: Para lista = ['Red', 'Green', 'White', 'Black'] la salida esperada es:

['Pink', 'Red', 'Green', 'White', 'Black', 'Yellow']

Para lista = [] la salida esperada es:

['Pink', 'Yellow']

Ejercicio 4 — exercise_remove_elements.py

Archivo de test: test_tp5_remove_elements.py

Conceptos: pop, del, índices, manejo de listas de diferentes tamaños.

Consigna: Crear una función que remueva el primer elemento, el quinto elemento y el sexto elemento de la lista. La función debe funcionar correctamente con listas de cualquier tamaño, incluyendo listas más cortas que los índices indicados.

Importante: Tener en cuenta que al remover un elemento, los índices de los elementos posteriores cambian.

Ejemplo: Para lista = ['Red', 'Green', 'White', 'Black', 'Pink', 'Yellow'] la salida esperada es:

['Green', 'White', 'Black']

Para lista = ['Audi', 'BMW', 'Porsche', 'Aston Martin'] la salida esperada es:

['BMW', 'Porsche', 'Aston Martin']

Para lista = [] la salida esperada es:

[]

Ejercicio 5 — exercise_find_max.py

Archivo de test: test_tp5_find_max.py

Conceptos: búsqueda de elementos, manejo de listas vacías.

Consigna: Crear una función que encuentre y retorne el valor máximo en una lista de números. Si la lista está vacía, retornar None.

Ejemplo: Para lista = [3, 7, 2, 9, 1] la salida esperada es:

9

Para lista = [-5, -2, -8, -1, -10] la salida esperada es:

-1

Para lista = [] la salida esperada es:

None

Ejercicio 6 — exercise_find_min.py

Archivo de test: test_tp5_find_min.py

Conceptos: búsqueda de elementos, manejo de listas vacías.

Consigna: Crear una función que encuentre y retorne el valor mínimo en una lista de números. Si la lista está vacía, retornar None.

Ejemplo: Para lista = [3, 7, 2, 9, 1] la salida esperada es:

1

Para lista = [-5, -2, -8, -1, -10] la salida esperada es:

-10

Para lista = [] la salida esperada es:

None

Ejercicio 7 — exercise_count_occurrences.py

Archivo de test: test_tp5_count_occurrences.py

Conceptos: count, búsqueda de elementos.

Consigna: Crear una función que cuente cuántas veces aparece un elemento específico en la lista.

Ejemplo: Para lista = [1, 2, 2, 3, 2, 4] y elemento = 2 la salida esperada es:

3

Para lista = [1, 2, 3, 4, 5] y elemento = 10 la salida esperada es:

0

Para lista = ['red', 'blue', 'red', 'green', 'red'] y elemento = 'red' la salida esperada es:

3

Ejercicio 8 — exercise_reverse_list.py

Archivo de test: test_tp5_reverse_list.py

Conceptos: slicing, creación de nuevas listas.

Consigna: Crear una función que retorne una nueva lista con los elementos en orden inverso. La lista original no debe ser modificada.

Ejemplo: Para lista = [1, 2, 3, 4, 5] la salida esperada es:

[5, 4, 3, 2, 1]

Para lista = ['a', 'b', 'c', 'd'] la salida esperada es:

['d', 'c', 'b', 'a']

Para lista = [] la salida esperada es:

[]

Ejercicio 9 — exercise_is_empty.py

Archivo de test: test_tp5_is_empty.py

Conceptos: Verificación de listas vacías, expresiones booleanas.

Consigna: Crear una función que determine si una lista está vacía. Debe retornar True si la lista está vacía y False en caso contrario.

Ejemplo: Para lista = [] la salida esperada es:

True

Para lista = [1] la salida esperada es:

False

Para lista = ['Red', 'Green', 'White', 'Black'] la salida esperada es:

False

Ejercicio 10 — exercise_concatenate_lists.py

Archivo de test: test_tp5_concatenate_lists.py

Conceptos: concatenación de listas.

Consigna: Crear una función que concatene dos listas en una sola. La función debe retornar una nueva lista con todos los elementos de la primera lista seguidos de todos los elementos de la segunda lista.

Ejemplo: Para lista1 = [1, 2, 3] y lista2 = [4, 5, 6] la salida esperada es:

[1, 2, 3, 4, 5, 6]

Para lista1 = [] y lista2 = [1, 2, 3] la salida esperada es:

[1, 2, 3]

Para lista1 = [1, 2] y lista2 = ['a', 'b'] la salida esperada es:

[1, 2, 'a', 'b']

Ejercicio 11 — exercise_check_lists.py

Archivo de test: test_tp5_check_lists.py

Conceptos: Acceso por índice, comparación, validación de longitud.

Consigna: Crear una función que verifique si ambas listas tienen el mismo elemento en la tercera posición (índice 2). Si alguna de las listas no tiene un tercer elemento, la función debe retornar False.

Ejemplo: Para lista1 = ['Black', 'Pink', 'Yellow', 'Red', 'Green', 'White'] y lista2 = ['Red', 'Green', 'Yellow', 'White', 'Black', 'Pink'] la salida esperada es:

True

Para lista1 = ['Black', 'Pink', 'Green', 'White'] y lista2 = ['Red', 'Green', 'Yellow', 'Black', 'Pink'] la salida esperada es:

False

Para lista1 = ['Black', 'Pink'] y lista2 = ['Red', 'Green', 'Yellow', 'Black', 'Pink'] la salida esperada es:

False

Ejercicio 12 — exercise_list_of_lists.py

Archivo de test: test_tp5_list_of_lists.py

Conceptos: Listas anidadas, slicing avanzado, manipulación de múltiples dimensiones.

Consigna: Crear una función que reciba una lista que contiene exactamente 3 listas internas y modifique cada una de ellas según las siguientes reglas:

La función debe funcionar correctamente incluso si alguna de las listas internas tiene menos elementos de los esperados.

Ejemplo: Para lista = [[1, 2, 3], [4, 5, 6, 7, 8], [9, 10, 11, 12]] la salida esperada es:

[[1, 2], [5, 6, 7], [11, 12]]

Para lista = [[], [4, 5, 6], [10, 11, 12]] la salida esperada es:

[[], [5, 6], [11, 12]]

Para lista = [[1, 2], [], [12]] la salida esperada es:

[[1, 2], [], [12]]