Sunteți pe pagina 1din 28

Capítulo 10

Listas

CC2005 - Algoritmos y Programación Básica - 2010 1


Objetivo
Conocer las principales operaciones con
listas.
Utilizar la estructura try except para la
programación defensiva.
Utilizar funciones del módulo random
para generar números al azar

CC2005 - Algoritmos y Programación Básica - 2010 2


Agenda
Funciones del módulo random
Definición de listas.
Indices y secciones (slices) de listas
Repeticiones con for y range
Métodos en listas

CC2005 - Algoritmos y Programación Básica - 2010 3


Módulo random
El módulo random proporciona
funciones útiles que generan números al
azar.
import random
x = random.randint(1,10)

Genera un número entro 1 y 10


CC2005 - Algoritmos y Programación Básica - 2010 4
Módulo random
Usted puede consultar las funciones
proporcionadas por el módulo:
http://docs.python.org/library/random.html
Ejemplo:
random.choice('abcdefgh')

selecciona una de esas letras al azar


CC2005 - Algoritmos y Programación Básica - 2010 5
Definición de Listas
Una lista es una colección de valores
encerrados entre []
Ejemplo de listas:
profesores = ["alejandra","martha","rolando"]
miscalificaciones = [50,70,90,61]
lista1 = ['a', 5, [10,20], 'z']
lista2 = [ ] #esta lista esta vacia

CC2005 - Algoritmos y Programación Básica - 2010 6


Listas son secuencias
Las listas son una secuencia de valores.
Cada uno de los valores de la lista
puede ser accesado por su índice.
Ejemplo:
print profesores[1]
muestra el valor: “martha”

CC2005 - Algoritmos y Programación Básica - 2010 7


Las Listas se pueden modificar
La secuencia inicia con el índice o
posición cero.
Se puede modificar (cambiar) un valor
específico indicando su índice:
profesores[1] = "martha ligia"

CC2005 - Algoritmos y Programación Básica - 2010 8


Secciones de las listas (slices)
Se pueden indicar varios elementos de
una lista empleando un rango de
índices:
>>>a=[‘m’,’n’,’o’,’p’,’q’]
>>>print a[1:3] #slice
>>>[‘n’,’o’]
Notar que ya no se incluye el valor del último índice

CC2005 - Algoritmos y Programación Básica - 2010 9


Trabajo con listas
El operador in sirve para comprobar si
un valor existe en la lista:
>>> 'lunes' in [ 'domingo', 'sabado‘]
>>> False

>>>5 in [15,20,5,30]
>>>True
CC2005 - Algoritmos y Programación Básica - 2010 10
Operaciones con listas
Se pueden concatenar listas con +
>>>a = [2,3,6]
>>>b = [7,8,9]
>>>c = a + b
>>>print c
>>>[2,3,6,7,8,9]

CC2005 - Algoritmos y Programación Básica - 2010 11


Operaciones con listas
También se puede utilizar el operador *
>>>a = [0] * 3
>>>print a
>>>[0, 0, 0]
>>>b = [1,2] * 3
>>>print b
>>>[1,2,1,2,1,2]
CC2005 - Algoritmos y Programación Básica - 2010 12
Métodos para trabajar listas
Append: agrega elementos al final de la
lista
>>> a = [1,2]
>>> a.append(3)
>>> print a
>>> [1,2,3]
Note que se agregó el elemento a la lista a.

CC2005 - Algoritmos y Programación Básica - 2010 13


Métodos para manejar listas
Los métodos no regresan ningún valor
por lo que existe problemas en las
siguientes instrucciones:
>>>a = [1,2]
>>>a = a.append(3) #incorrecto
>>>print a
>>>None #a no es una lista ahora
CC2005 - Algoritmos y Programación Básica - 2010 14
Métodos para listas
El método extend agrega todos los
elementos de una lista
>>>a = [1,2,3]
>>>b = [4,5,6]
>>>a.extend(b)
>>>print a
>>>[1,2,3,4,5,6]
Notar que la lista b no es alterada

CC2005 - Algoritmos y Programación Básica - 2010 15


Métodos para listas
Puede ver la referencia de los métodos
existentes para trabajo de listas:

http://docs.python.org/tutorial/datastructures.html

CC2005 - Algoritmos y Programación Básica - 2010 16


Eliminar elementos
Se pueden eliminar elementos de la lista
de varias formas:
Método pop(indice)
>>> a = [‘m’,’n’,’o’]
>>> eliminado = a.pop(1)
>>> print a
>>> [‘m’,’o’]
CC2005 - Algoritmos y Programación Básica - 2010 17
Eliminar elementos de listas
Con el operador del
>>>a=[‘b’,’c’,’d’]
>>>del a[1] #indicar el índice
>>>print a
>>>[‘b’,’d’]

CC2005 - Algoritmos y Programación Básica - 2010 18


Eliminar elementos
Si no se conoce el índice del elemento a
eliminar, se puede indicar el valor
empleando el método remove
>>>a=[90,20,45]
>>>a.remove(20)
>>>print a
>>>[90,45]
CC2005 - Algoritmos y Programación Básica - 2010 19
Instrucción range
La instrucción range(n) regresa una lista
de números hasta n-1
>>>range(5)
>>>[0,1,2,3,4]

CC2005 - Algoritmos y Programación Básica - 2010 20


Instrucción range
La instrucción range(inicio,final) regresa
una lista de números desde inicio hasta
final – 1
>>>range(2,5)
>>>[2,3,4]

CC2005 - Algoritmos y Programación Básica - 2010 21


Repeticion con for
Podemos hacer repeticiones con la
instrucción for
>>>for x in range(3):
>>> print x
0
1
2
CC2005 - Algoritmos y Programación Básica - 2010 22
Visitar cada elemento de la lista
Se puede emplear la repetición for para
trabajar con cada elemento de la lista:
>>>a = [50,20,70]
>>>for dato in a:
>>> print dato
50
20
70
CC2005 - Algoritmos y Programación Básica - 2010 23
Visitar cada elemento de la lista
La función len(lista) regresa la cantidad
de elementos en la lista.
Esto nos puede ser útil en una
repetición que recorre todos los
elementos de la lista.

CC2005 - Algoritmos y Programación Básica - 2010 24


Visitar elementos de la lista
>>> a= [20,30,90]
>>> largo = len(a) #3 elementos
>>> for x in range(largo):
print a[x]
20
30
90
CC2005 - Algoritmos y Programación Básica - 2010 25
Conversión de cadena a lista
La instrucción list convierte una cadena
a lista
>>>s = "hola"
>>>lalista = list(s)
>>>print lalista
>>>[‘h’,’o’,’l’,’a’]

CC2005 - Algoritmos y Programación Básica - 2010 26


Conversión de cadena a lista
También se puede indicar que se forme
una lista con elementos que son
cadenas.
>>>s=“hola a todos”
>>>lalista = s.split(' ') #separadas por espacio blanco
>>>print lalista
[“hola”,”a”,”todos”]

CC2005 - Algoritmos y Programación Básica - 2010 27


Conversión de lista a cadena
El método join convierte una lista a una
cadena.
>>>lalista = [“hola”,”a”,”todos”]
>>> s = ' '.join(lalista) #separada por espacio en blanco
>>>print s
>>>”hola a todos”

CC2005 - Algoritmos y Programación Básica - 2010 28

S-ar putea să vă placă și