secuencias.pdf
TRANSCRIPT
-
7/25/2019 Secuencias.pdf
1/27
Secuencias en Python
Introduccin a la Computacin
Clase 11Patricia Borensztejn
-
7/25/2019 Secuencias.pdf
2/27
Una cadena es una secuencia
En Python tenemos los tipos de datos
Escalares: enteros, flotantes
Secuencias:
sucesin de elementos que pueden ser accedidos
mediante un ndice.
Hay: strings, Unicode strings, lists, tuples, bytearrays,
buffers, and xrange objects and more and more
porque Python es un lenguaje en evolucin.
Las cadenas (strings) pertenecen al tipo secuencia.
-
7/25/2019 Secuencias.pdf
3/27
Secuencias: Listas
El concepto de secuencia es muy potente:
podemos definir secuencias de valores de
cualquier tipo: enteros, flotantes, cadenas
Estas secuencias se llaman listas.
Las listas pueden contener elementos de
distintos tipos incluso pueden contener
listas.
-
7/25/2019 Secuencias.pdf
4/27
Definiendo una lista
Se definen utilizando el corchete y los elementosse separan con comas
Ejemplos:
l = *22, True, una lista, *1, 2]]Donde les una variable de tipo lista que contiene cuatroelementos:
l[0] es el entero 22
l[1] es el booleano Truel[2] es la cadena una lista
l[3] es otra lista formada por los enteros 1 y 2
-
7/25/2019 Secuencias.pdf
5/27
Definiendo listas
Tambin podemos definir los elementos de la
lista como expresiones:
>>> a= [1, 1+1, 6/2]
>>> a
[1, 2, 3]
Python almacena las listas como las cadenas:mediante referencias (punteros).
La variable aes un puntero a la lista
-
7/25/2019 Secuencias.pdf
6/27
Operadores para Listas
Como las listas y las cadenas son ambas del
tipo secuencia, los mismos operadores y
funciones que trabajan sobre cadenas,
tambin trabajan sobre listas.
Ejemplo: operador len,+,*
-
7/25/2019 Secuencias.pdf
7/27
Concatenacin y Asignacin en Listas
La concatenacin no modifica la lista original,
crea una nueva zona de memoria.
La asignacin copia el puntero
-
7/25/2019 Secuencias.pdf
8/27
Indexacin
Podemos utilizar indexacin con nmerosnegativos.
Operador de corte
-
7/25/2019 Secuencias.pdf
9/27
Operador de Corte: hace una copia
-
7/25/2019 Secuencias.pdf
10/27
Iteradores : for in
-
7/25/2019 Secuencias.pdf
11/27
Comparaciones
Si las listas tienen distinta longitud, son
diferentes.
Si las listas tienen la misma longitud, se
compara elemento a elemento de izquierda a
derecha.
Tambin funcionan los operadores: =.
Probarlos para ver como funcionan.
-
7/25/2019 Secuencias.pdf
12/27
Operador is
Ya hemos visto que a veces dos listas son la
misma lista (si usamos la asignacin) y a veces
son distintas. (si usamos expresiones)
Por ejemplo:
El operadoris permite averiguar si dos
referencias apuntan al mismo objeto.
-
7/25/2019 Secuencias.pdf
13/27
Cuando tengamos dudas
Podemos preguntar
Aunque la respuesta nos parta la cabeza. (loque ocurre es que cuando Python evala
expresiones asigna memoria.)
-
7/25/2019 Secuencias.pdf
14/27
Inmutabilidad de los escalares y de las
cadenas
Para ahorrar memoria, Python considera que
tanto los valores escalares (2, 3, 4.567, etc)
como las cadenas (hola hola) son objetos
inmutables.
-
7/25/2019 Secuencias.pdf
15/27
Inmutabilidad de los escalares y de las
cadenas
Si modificamos el valor de un objeto
inmutable, se crea una nueva zona de
memoria
-
7/25/2019 Secuencias.pdf
16/27
Algo que no dijimos de las cadenas
Esto no lo podemos hacer:
debido a que las cadenas son INMUTABLES.
Las listas, a diferencia de las cadenas, son
MUTABLES. >>> a=["H","o","l","a"]>>> a['H', 'o', 'l', 'a']
>>> a[0]="h"
>>> a
['h', 'o', 'l', 'a']
>>>
-
7/25/2019 Secuencias.pdf
17/27
La verdad sobre las listas (aunque no la
querramos saber)
La lista a se almacena asi:
Entonces:
>>> a=[1,2,1]
-
7/25/2019 Secuencias.pdf
18/27
La verdad sobre las listas (aunque no la
querramos saber)
Al modificar un valor de la lista, lo que sucede esque se crea una nueva zona de memoria con elnuevo valor. Lo que se escribe dentro de la listaes la referencia al nuevo valor.
A la derecha mostramos la versin simplificada
-
7/25/2019 Secuencias.pdf
19/27
Agregar elementos a la lista
Usando el operador +(concatena dos listas)
Usando el mtodo append
La diferencia entre ambas es que append aade losnuevos elementos a la lista, en cambio laconcatenacincopia primero la lista original sobre unanueva zona de memoria. Es decir, append es maseficiente
-
7/25/2019 Secuencias.pdf
20/27
Ejemplo con listas: Lista de primos
Lo interesante es que comenzamos con una lista cuyalongitud desconocemos, por lo tanto comienza sinelementos (lista vaca) , y crece en tiempo de ejecucin
conclusin: la lista es una estructura dinmica!!!!!!
-
7/25/2019 Secuencias.pdf
21/27
Lectura de listas por teclado
Usando el operador de concatenacin, o bien
el mtodo append o bien, creando una lista
inicializada a cero con todos los elementos.
El operador * (recordemos) es de repeticin.
-
7/25/2019 Secuencias.pdf
22/27
Borrado de elementos de una lista
Se pueden borrar elementos con la sentencia del.Esta sentencia no crea una nueva lista, sino quemodifica la anterior.
Debemos ser muy cuidadosos cuando usamos elborrado mientras recorremos la lista
-
7/25/2019 Secuencias.pdf
23/27
Operador in
Es el operador de pertenencia a una lista o a
una cadena.
-
7/25/2019 Secuencias.pdf
24/27
Operadores de Listas
secuencia[index]elemento situado en el ndice
index de la secuencia
secuencia[ind1:ind2]elementos desde el ndice ind1
hasta el ndice ind2
secuencia * n la secuencia se repite n veces
secuencia1 + secuencia2concatena las secuencias
secuencia1 y secuencia2
objeto in secuencia comprueba si objeto es unmiembro de secuencia
objeto not in secuenciacomprueba si objeto no es un
miembro de secuencia
-
7/25/2019 Secuencias.pdf
25/27
Funciones Pre-Definidas
list (secuencia)convierte la secuencia
a un tipo lista
str (objeto)convierte el objeto a
un tipo string
tuple (secuencia) convierte la secuenciaa un tipo tupla
len (secuencia)
devuelve la longitud
(numero de
elementos) de la
secuencia
max (secuencia)
devuelve el elemento
mas grande de la
secuencia
min (secuencia)devuelve el elemento
menor de la secuencia
-
7/25/2019 Secuencias.pdf
26/27
De cadenas a listas y viceversa
-
7/25/2019 Secuencias.pdf
27/27
Continuar. Prximamente en estamisma sala.