Sie sind auf Seite 1von 12

Algoritmos I (IS-141)

UNSCH

LABORATORIO 06
LISTAS Y MUTABILIDAD
I.

OBJETIVOS:
1)
2)
3)
4)

II.

Conocer las caractersticas de las estructuras tipo listas y diccionarios.


Escribir programas utilizando estructuras tipo listas.
Escribir programas utilizando estructuras tipo diccionarios.
Comprender el concepto de mutabilidad.

REVISIN CUESTIONARIO LABORATORIO ANTERIOR

Estructuras repetitivas

III.

DESARROLLO DE LA PRCTICA:
A. LISTAS :
Python nos permite definir secuencias de valores de cualquier tipo. Por ejemplo,
podemos definir secuencias de nmeros enteros o flotantes, o incluso de
cadenas. Hablamos entonces de listas. En una lista podemos, por ejemplo,
registrar las notas de los estudiantes de una clase, la evolucin de la
temperatura hora a hora, los coeficientes de un polinomio, la relacin de
nombres de personas asistentes a una reunin, etc.
Python sigue una notacin especial para representar las listas. Los valores de
una lista deben estar encerrados entre corchetes y separados por comas. He
aqu una lista con los nmeros del 1 al 3:

Ing. Manuel A. Lagos Barzola

Algoritmos I (IS-141)

Nmero de elementos de una lista:

Concatenando Listas: Operador +

Reproduciendo Listas: Operador *

Operador Indexacin:

Cortando listas:

Ing. Manuel A. Lagos Barzola

UNSCH

Algoritmos I (IS-141)

Recorriendo los elementos de una lista:

Comando range:

Comparando listas:

Ing. Manuel A. Lagos Barzola

UNSCH

Algoritmos I (IS-141)

Otras comparaciones:

Operador is:

Modificando elementos de una lista:

Ing. Manuel A. Lagos Barzola

UNSCH

Algoritmos I (IS-141)

UNSCH

Mutabilidad, inmutabilidad y representacin de la informacin en


memoria:
Python procura no consumir ms memoria que la necesaria. Ciertos objetos son
inmutables, es decir, no pueden modificar su valor. El nmero 2 es siempre el
nmero 2. Es un objeto inmutable. Python procura almacenar en memoria una
sola vez cada valor inmutable. Si dos o ms variables contienen ese valor, sus
referencias apuntan a la misma zona de memoria. Considera este ejemplo:

Agregando elementos a una lista:

Ing. Manuel A. Lagos Barzola

Algoritmos I (IS-141)

Diferencia:

Leyendo elementos del teclado para llenar una lista:

Ing. Manuel A. Lagos Barzola

UNSCH

Algoritmos I (IS-141)

UNSCH

Borrando elementos de una lista:

B. EJERCICIOS:
1. Disear un programa que, dados un elemento y una lista, nos diga si el
elemento pertenece o no a la lista mostrando en pantalla el mensaje
Pertenece o No pertenece en funcin del resultado.
2. Hacer un diagrama de flujo que busque en una lista de 100 nmeros, un
nmero ingresado por el usuario. La lista de nmeros debe ser ingresado por
teclado en un arreglo unidimensional(lista) previamente.
3. Hacer un diagrama de flujo para calcular el mximo y el mnimo de N nmeros
almacenados en una lista. La lista de nmeros debe ser ingresado por teclado
en un arreglo unidimensional(lista) previamente. L as operaciones de lectura de
nmeros para la lista y el clculo del mayor y menor nmero se deben repetir 5
veces.
4. Escriba un programa para almacenar el nombre y correo electrnico de sus
amistades. Luego este deber pedir un nuevo nombre y correo para registrarse,
siempre y cuando no haya otro nombre igual ya registrado. El ingreso de nuevos
datos se realiza mientras el usuario lo desee.
5. Escriba un programa que tome una lista e imprima si hay elementos repetidos;
si algn elemento aparece ms de una vez.
6. Escriba un programa que permita crear dos listas de palabras y que a
continuacin elimine de la primera lista los nombres de la segunda.
7. 6. Escriba un programa que le permita a un usuario multiplicar los datos de dos
matrices. Este debe ingresar la dimensin de las matrices y los elementos de
cada matriz.

C. CUESTIONARIO LISTAS

listas_01
Ing. Manuel A. Lagos Barzola

Algoritmos I (IS-141)

UNSCH

Escribe un programa que permita crear una lista de palabras. Para ello, el
programa tiene que pedir un nmero y luego solicitar ese nmero de palabras
para crear la lista. Por ltimo, el programa tiene que escribir la lista.
Dime cuntas palabras tiene la lista: 3
Dime la palabra 1: Alberto
Dime la palabra 2: Benito
Dime la palabra 3: Carmen
La lista creada es: ['Alberto', 'Benito', 'Carmen']

listas_02
Escribe un programa que permita crear una lista de palabras y que, a
continuacin, pida una palabra y diga cuntas veces aparece esa palabra en la
lista.
Dime cuntas palabras tiene la lista: 4
Dime la palabra 1: Carmen
Dime la palabra 2: Alberto
Dime la palabra 3: Benito
Dime la palabra 4: Carmen
La lista creada es: ['Carmen', 'Alberto', 'Benito', 'Carmen']
Dime la palabra: Carmen
La palabra 'Carmen' aparece 2 veces en la lista.

listas_03
Escribe un programa que permita crear una lista de palabras y que, a
continuacin, pida dos palabras y sustituya la primera por la segunda en la lista.
Dime cuntas palabras tiene la lista: 4
Dime la palabra 1: Alberto
Dime la palabra 2: Carmen
Dime la palabra 3: Benito
Dime la palabra 4: Carmen
La lista creada es: ['Alberto', 'Carmen', 'Benito', 'Carmen']
Sustituir la palabra: Carmen
por la palabra: David
La lista es ahora: ['Alberto', 'David', 'Benito', 'David']

listas_04

Ing. Manuel A. Lagos Barzola

Algoritmos I (IS-141)

UNSCH

Escribe un programa que permita crear una lista de palabras y que, a


continuacin, pida una palabra y elimine esa palabra de la lista.
Dime cuntas palabras tiene la lista: 4
Dime la palabra 1: Alberto
Dime la palabra 2: Carmen
Dime la palabra 3: Carmen
Dime la palabra 4: Benito
La lista creada es: ['Alberto', 'Carmen', 'Carmen', 'Benito']
Dime la palabra: Carmen
La lista es ahora: ['Alberto', 'Benito']

listas_05
Escribe un programa que permita crear dos listas de palabras y que, a
continuacin, elimine de la primera lista los nombres de la segunda lista.
Dime cuntas palabras tiene la lista: 5
Dime la palabra 1: Carmen
Dime la palabra 2: Carmen
Dime la palabra 3: Alberto
Dime la palabra 4: Benito
Dime la palabra 5: David
La lista creada es: ['Carmen', 'Carmen', 'Alberto', 'Benito', 'David']
Dime cuntas palabras tiene la lista de palabras a eliminar: 3
Dime la palabra 1: Benito
Dime la palabra 2: Juan
Dime la palabra 3: Carmen
La lista de palabras a eliminar es: ['Benito', 'Juan', 'Carmen']
La lista es ahora: ['Alberto', 'David']

listas_06
Escribe un programa que permita crear una lista de palabras y que, a
continuacin, cree una segunda lista igual a la primera, pero al revs (no se
trata de escribir la lista al revs, sino de crear una lista distinta).
Dime cuntas palabras tiene la lista: 4
Dime la palabra 1: Alberto
Dime la palabra 2: Carmen
Dime la palabra 3: Benito
Dime la palabra 4: Daniel
La lista creada es: ['Alberto', 'Carmen', 'Benito', 'Daniel']
La lista inversa es: ['Daniel', 'Benito', 'Carmen', 'Alberto']
Ing. Manuel A. Lagos Barzola

Algoritmos I (IS-141)

10

UNSCH

listas_07
Escribe un programa que permita crear dos listas de palabras y que, a
continuacin, escriba las siguientes listas (en las que no debe haber
repeticiones):

Lista de palabras que aparecen en las dos listas


Lista de palabras que aparecen en la primera lista, pero no en la segunda
Lista de palabras que aparecen en la segunda lista, pero no en la primera
Lista de palabras que aparecen en ambas listas

Dime cuntas palabras tiene la primera lista: 3


Dime la palabra 1: Carmen
Dime la palabra 2: Alberto
Dime la palabra 3: Benito
La primera lista es: ['Carmen', 'Alberto', 'Benito']
Dime cuntas palabras tiene la segunda lista: 3
Dime la palabra 1: Benito
Dime la palabra 2: Juan
Dime la palabra 3: Carmen
La segunda lista es: ['Benito', 'Juan', 'Carmen']
Palabras que aparecen en las dos listas: ['Carmen', 'Benito']
Palabras que slo aparecen en la primera lista: ['Alberto']
Palabras que slo aparecen en la segunda lista: ['Juan']
Todas las palabras: ['Carmen', 'Benito', 'Alberto', 'Juan']

listas_08
Escribe un programa que permita crear una lista de palabras y que, a
continuacin, ordene la lista por orden alfabtico.
Dime cuntas palabras tiene la lista: 4
Dime la palabra 1: Carmen
Dime la palabra 2: Alberto
Dime la palabra 3: Daniel
Dime la palabra 4: Benito
La lista creada es: ['Carmen', Alberto', 'Daniel', 'Benito']
La lista odenada es: ['Alberto', 'Benito', 'Carmen', 'Daniel']

listas_09
Ing. Manuel A. Lagos Barzola

Algoritmos I (IS-141)

11

UNSCH

Escribe un programa que permita crear una lista de palabras y que, a


continuacin, cree una segunda lista con las palabras de la primera, pero sin
palabras repetidas (el orden de las palabras en la segunda lista no es
importante).
Dime cuntas palabras tiene la lista: 6
Dime la palabra 1: Alberto
Dime la palabra 2: Carmen
Dime la palabra 3: Alberto
Dime la palabra 4: Daniel
Dime la palabra 5: Benito
Dime la palabra 6: Daniel
La lista creada es: ['Alberto', 'Carmen', 'Alberto', 'Daniel', 'Benito', 'Daniel']
La lista sin repeticiones es: ['Alberto', 'Carmen', 'Daniel', 'Benito']

listas_10
Escribe un programa que pida un nmero y a continuacin escriba la lista de
todos los divisores del nmero (incluidos el uno y l mismo).
Dime un nmero: 36
36 tiene 9 divisores: [1, 2, 3, 4, 6, 9, 12, 18, 36]
Dime un nmero: 125
125 tiene 4 divisores: [1, 5, 25, 125]

listas_11
Escribe un programa que pida un nmero y a continuacin escriba la lista de
todos los nmeros primos hasta l..
Dime un nmero: 100
Primos hasta 100: 1 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71
73 79 83 89 97

listas_12
Escribe un programa que calcule trminos de una sucesin del tipo U n+1 = a
Un + b. El programa tiene que pedir el valor de a, de b y del trmino U 0 y el
nmero de trminos a calcular.
Clculo de trminos de una sucesin U(n+1)=a.U(n)+b.
Dime el valor de a: 2
Dime el valor de b: -1
Dime el valor de U(0): 3
Ing. Manuel A. Lagos Barzola

Algoritmos I (IS-141)

12

UNSCH

Dime cuntos trminos quieres: 8


Los trminos de la sucesin son: [3, 5, 9, 17, 33, 65, 129, 257]

listas_13
Escribe un programa que calcule trminos de la sucesin U n+1 = 3 Un + 1 si
Un es impar y U n+1 = Un / 2 si Un es par. El programa tiene que pedir el trmino
U0 y el nmero de trminos a calcular.
Clculo de trminos de la sucesin U(n+1)=3.U(n)+1 si n es impar y
U(n)=U(n)/2 si n es par.
Dime el valor de U(0): 7
Dime cuntos trminos quieres: 20
Los trminos de la sucesin son: [7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16,
8, 4, 2, 1, 4, 2, 1]

Ing. Manuel A. Lagos Barzola

Das könnte Ihnen auch gefallen