Beruflich Dokumente
Kultur Dokumente
Libros / Algoritmos de Programacin con Python / Captulo 7. Tuplas y listas / 7.2. Listas
7.2. Listas
Presentaremos ahora una nueva estructura de datos: la lista. Usaremos listas para poder
modelar datos compuestos pero cuya cantidad y valor varan a lo largo del tiempo. Son
secuencias mutables y vienen dotadas de una variedad de operaciones muy tiles.
Para obtener una sublista a partir de la lista original, se utiliza la notacin de rangos,
como en las otras secuencias.
Para obtener la lista que contiene slo a quin se inscribi en segundo lugar podemos
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
escribir:
>>> xs[1:2]
[89211]
Para obtener la lista que contiene al segundo y tercer inscritos podemos escribir:
>>> xs[1:3]
[89211, 66540]
Para obtener la lista que contiene al primero y segundo inscritos podemos escribir:
>>> xs[:2]
[78455, 89211]
>>> xs[1]=79211
>>> xs
[78455, 79211, 66540, 45750]
>>> xs.append(47890)
>>> xs
[78455, 79211, 66540, 45750, 47890]
>>>
>>> xs.insert(1,78455)
>>> xs
[78455, 78455, 79211, 54988, 66540, 45750, 47890]
>>> xs.remove(45750)
>>> xs
[78455, 78455, 79211, 54988, 66540, 47890]
>>> xs.remove(78455)
>>> xs
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
[78455, 79211, 54988, 66540, 47890]
ADVERTENCIA
Si el valor a borrar no existe, se produce un error:
>>> xs.remove(78)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list
Veamos qu operaciones sobre listas se pueden usar para lograr esos dos objetivos:
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Para preguntar si un valor determinado es un elemento de una lista usaremos la
operacin in :
>>> xs
[78455, 79211, 54988, 66540, 47890]
>>> 78 in xs
False
>>> 66540 in xs
True
>>>
NOTA
Esta operacin se puede utilizar para todas las secuencias, incluyendo tuplas y
cadenas
>>> xs.index(78455)
0
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
>>> xs.index(47890)
4
ADVERTENCIA
Si el valor no se encuentra en la lista, se producir un error:
>>> xs.index(78)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: list.index(x): x not in list
>>> ys=[10,20,10]
>>> ys.index(10)
0
NOTA
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Esta operacin est disponible en cadenas, pero no en tuplas.
Para iterar sobre todos los elementos de una lista usaremos una construccin for :
NOTA
Esta construccin se puede utilizar sobre cualquier secuencia, incluyendo tuplas y
cadenas.
En Python, las listas, las tuplas y las cadenas son parte del conjunto de las secuencias.
Todas las secuencias cuentan con las siguientes operaciones:
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Operacin Resultado
s * n Concatena n copias de s
Problema 7.1. Queremos escribir un programa que nos permita armar la lista de los
inscritos de una materia.
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
1. Anlisis: El usuario ingresa datos de padrones que se van guardando en una lista.
2. Especificacin: El programa solicitar al usuario que ingrese uno a uno los padrones
de los inscritos. Con esos nmeros construir una lista, que al final se mostrar.
Es claramente un ciclo en el cual se le pide al usuario que ingrese uno a uno los
padrones de los inscritos, y estos nmeros se agregan a una lista. Y en algn momento,
cuando se terminaron los inscritos, el usuario deja de cargar.
Para que fuera un ciclo definido deberamos contar de antemano cuntos inscritos
tenemos, y luego cargar exactamente esa cantidad, pero eso no parece muy til.
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Pedir datos.
Pedir datos.
Como sabemos que los nmeros de padrn son siempre enteros positivos, podemos
considerar que el centinela puede ser cualquier nmero menor o igual a cero. Tambin
sabemos que en nuestro caso tenemos que ir armando una lista que inicialmente no
tiene ningn inscripto.
Pedir padrn.
Pedir padrn.
# Mostramos el resultado*
print "Esta es la lista de inscritos: ", ins
5. Prueba: Para probarlo lo ejecutamos con algunos lotes de prueba (inscripcin de tres
alumnos, inscripcin de cero alumnos, inscripcin de alumnos repetidos):
7. Diseo revisado: Para no permitir que haya padrones repetidos debemos revisar que
no exista el padrn antes de agregarlo en la lista:
Pedir padrn.
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Pedir padrn.
9. Nueva prueba: Para probarlo lo ejecutamos con los mismos lotes de prueba
anteriores (inscripcin de tres alumnos, inscripcin de cero alumnos, inscripcin de
alumnos repetidos):
#!/usr/bin/env python
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
# encoding: latin1
""" Mdulo para inscribir alumnos al curso - versin 1 """
# Mostramos el resultado
print "Esta es la lista de inscritos: ", ins
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Ejercicio 7.8. Inscribir y borrar alumnos como antes, pero registrar tambin el nombre y
apellido de la persona inscripta, de modo de tener como lista de inscritos: [(20,
"Ana", "Garca"), (10, "Juan", "Salas")] .
Anterior Siguiente
7.1. Tuplas 7.3. Ordenar listas
Copyright (c) 2011-2014 Rosita Wachenchauzer, Margarita Manterola, Maximiliano Curia, Marcos Medrano,
Nicols Paez. La copia y redistribucin de esta pgina se permite bajo los trminos de la licencia Creative
Commons Atribucin - Compartir Obras Derivadas Igual 3.0 siempre que se conserve esta nota de copyright.
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
INDICE DE CONTENIDOS
2. Programas sencillos
3. Funciones
4. Decisiones
5. Ms sobre ciclos
6. Cadenas de caracteres
7.1. Tuplas
7.2. Listas
7.5. Resumen
7.6. Ejercicios
8. Algoritmos de bsqueda
9. Diccionarios
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
10. Contratos y Mutabilidad
14. Objetos
3.757
2006-2017 LibrosWeb.es Contacto Novedades Condiciones Privacidad
das online
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com