Taller de Listas Introducción a la Programación Departamento de Ciencias e Ingeniería de la Computación Pontificia Universidad Javeriana Santiago de Cali Octubre de 2010 Resumen 1. Puntos a realizar 1. Implemente una función buscar a la cual le entran 2 parámetros; el primero es una cadena de caractéres y el segundo es una lista de cadenas. La función debe buscar si el primer parametro se encuentra en la lista, de ser cierto se debe retornar True, False de lo contrario. 2. Modifique la función anterior para que retorne la posición de la cadena en la lista, de ser encontrada, o retorne 1 si la cadena no está en la lista. Ejemplo: entrada: Camion, [ Camioneta, Motocicleta, Tracktomula, Automovil, Camion, Jeepeto ] salida: 5 entrada Pera, [ Manzana, Piña, Coco, Mora, Lulo, Banano ] salida: 1 3. Diseñe una función que tome los elementos que se encuentran en las posiciones impares de una lista, los anexe a otra lista y la retorne. Ejemplo: Si se tiene la lista [1, 2, 4, 5, 6, 4, 3, 2, 1] se debe retornar la lista [2, 5, 4, 2] 4. Diseñe un procedimiento en Python al cual le ingrese una lista de números enteros positivos. La función debe imprimir una lista con los elementos pares y una lista con los elementos impares. 5. En programación, trim es una función de manipulación de cadenas muy común que elimina los espacios en blanco del comienzo y el final de una cadena de texto. Dada una lista de caractéres que contiene las letras y espacios de una frase, desarrolle una función que retorne la lista sin los espacios del inicio y el final. 1
[, c, a, r, t, a,, d, e,, m, i,, m, a, m, a, ] la función debe retornar la lista [ c, a, r, t, a,, d, e,, m, i,, m, a, m, a ] 6. Realice una función que recibe como parámetro dos listas. La primera lista LE contiene los elementos a reorganizar, la segunda lista LP contiene las nuevas posiciones de los elemento de la lista LE. La función con los siguientes parámetros: LE = [ a, b, c, d ] LP = [1, 3, 0, 2] deberá retornar la lista [ c, a, d, b ] 7. Se tienen dos listas de igual longitud, una contiene las edades de un grupo de personas y la otra contiene el sexo de cada persona. Realice la función PromedioxSexo, que dadas las dos listas y un tipo de sexo, calcule el promedio de edades para ese sexo. Por ejemplo, dadas las listas: L1 = [23, 12, 25, 18, 32] L2 = [ F, M, F, F, M ] y sexo = M, la función debe retornar 22 que es el promedio de edades para el sexo Masculino. 8. El grupo de estudios de tu programa está organizando un paseo a Pance con motivo de los 40 años de la fundación de la universidad. Usted como parte del grupo se ha encargado de sacar las cuentas de los gastos alimenticios. Para automatizar el proceso usted a decidido implementar un programa en python que le ayude a calcular cuanto dinero deben recoger para comprar la comida. El programa recibe 4 listas de igual tamaño. La primer lista contiene los nombres de los artículos a comprar. La segunda lista contiene la cantidad de cada artículo. La tercera lista contiene los precios de los artículos. La última lista contiene la palabra True o la palabra False, indicando si el artículo tiene o no descuento. El descuento aplicado es 3 % indiferentemente del artículo. Ejemplo Entrada: l1 = [ P an, Naranjas, Jamon, Chocolatina ] l2 = [5, 10, 2, 10] l3 = [2000, 1000, 5000, 1500] l4 = [F alse, F alse, T rue, F alse] 2
El programa debe imprimir el valor de comprar cada producto por aparte y debe retornar el valor total de las compras. 9. Desarrolle la función Separar, que dada una lista de caracteres que representa una frase, retorne una lista de listas, donde cada sublista representa una palabra de la frase. Por ejemplo, dada la siguiente lista: [ c, a, l, i,, y,, y, u, m, b, o ] que representa la frase cali y yumbo, se debe retornar la siguiente lista: [[ c, a, l, i ], [ y ], [ y, u, m, b, o ]] (Nota: Recuerde que las palabras en una frase se separan por espacio ). 10. Desarrolle una función que encuentre el máximo valor en una lista de listas de números naturales. La función con la siguiente lista como parámetro: L = [[3, 4], [1, 6, 3, 4], [3, 4, 2], [7]] deberá retornar 7. 11. Los algoritmos de compresión de archivos (reduce el tamaño de un archivo, ej:.zip) son muy utilies en la vida actual, por ejemplo cuando se necesita enviar un archivo por email y este es muy grande, se recurre a un programa para que lo comprima. Usted ha sido escogido para hacer un programa en Python que comprima un archivo. El archivo está representado como una lista de caracteres. El nuevo archivo generado debe ser una lista de parejas, donde cada pareja contiene el caracter comprimido y el número de veces que se repite de manera contigua. Por ejemplo para el archivo representado por la lista L: L = [ a, a, a, c, c, d, c, e, e, e, e, e, e, e, e, e, z, z ] deberá comprimirlo en la lista LC, así: LC = [[ a, 2], [ c, 1], [ d, 0], [ c, 0], [ e, 8], [ z, 1]] 12. Usted ha sido encargado de una misión para desencriptar códigos. Para lograr esto, usted deberá realizar una función en Python, la cual desencripte un código, que viene en una lista de caracteres. La clave para desencriptar, se encuentra en una lista con 3
dos sublistas internas que contienen, correspondientemente, la representación real del alfabeto secreto. Por ejemplo: Alfabeto secreto: S = [[ m, u, r, c, i, e, l, a, g, o ], [0, 2, 4, 6, 8, 1, 3, 5, 7, 9]] Código a desencriptar: C = [ 8, n, t, 4, 9, d, 2, 6, 6, 8, 9, n,, 5,, 3, 5,, p, 4, 9, 7, 4, 5, 0, 5, 6, 8, 9, n ] Código desencriptado (Respuesta): R = [ i, n, t, r, o, d, u, c, c, i, o, n,, a,, l, a,, p, r, o, g, r, a, m, a, c, i, o, n ] 13. Suponga que usted es contratado por la oficina de registro académico de la Pontificia Universidad Javeriana. Su deber es calcular las notas definitivas de todos los estudiantes en sus respectivas materias. Por cada curso se le entregará una lista con los porcentajes de las notas y una matriz que contiene los nombres de los estudiantes y sus calificaciones, con esta información usted deberá calcular la nota definitiva de cada estudiante. Construya un programa en Python que reciba como entrada la lista de los porcentajes y la matriz de las calificaciones, este debe arrojar como respuesta una matriz con los nombres de los estudiantes y sus notas definitivas. Ejemplo: P orcentajes = [20, 20, 20, 15, 15, 10] Calif icaciones = [ [ Hugo, 5,0, 4,0, 3,0, 4,0, 2,0, 3,0], [ P aco, 3,0, 4,0, 3,0, 2,0, 5,0, 2,0], [ Luis, 2,0, 3,0, 2,0, 3,0, 2,0, 2,0],...] Respuesta = [ [ Hugo, 3,60], [ P aco, 3,25], [ Luis, 2,35],...] 14. Imagine que este año es el Mundial de Fútbol Colombia-Argentina 2010, y ha usted le han encargado hacer el software que calcula los puntos de los cuadrangulares iniciales. Los resultados de los cuadrangulares usted los recibirá como una matriz (lista de listas) en la cual cada elemento de ella indica los partidos de cierto equipo. 4
El número de equipos también se recibe por medio de otro parámetro. Por ejemplo, para 4 equipos y la siguiente matriz dada: g p e p p e g g p e e g Se puede ver que el 1er equipo ganá el partido contra el 2do equipo, perdió el partido contra el 3er equipo y empaté el partido contra el 4to equipo. El 2do equipo perdió el partido contra el 1er equipo, perdió el partido contra el 3o y así sucessivamente. Usted debe realizar un programa que retorna una lista con los puntos totales que hizo cada equipo, en el caso del ejemplo esta lista será: [4, 1, 6, 5] Nota: recuerde que ganar un partido equivale a 3 puntos, empatar equivale a 1 y perder no redime puntos. Realice un procedimiento que imprime que equipo quedó de primer lugar en el cuadrangular recibiendo como parámetro la lista que arroja el 1er punto. Por lo tanto para el ejemplo anterior debe imprimir: 3 Andrés Felipe Barco Santa Profesor Hora Catedra Pontificia Universidad Javeriana Introducción a la Programación-Grupo D América del Sur 5