Upload
independent
View
2
Download
0
Embed Size (px)
Citation preview
Temario
• Creación y visualización de Listas
• Funciones y operadores para el manejo de listas
• Uso del bucle for para el manejo de listas
Ing. Juan Puerta Arce
Ing. Juan Puerta Arce
¿Qué es una lista en python?
Es un conjunto o agrupación ordenada de elementos quepueden ser del mismo tipo o no.
Ing. Juan Puerta Arce
LISTAS EN PYTHON
Una lista se crea agrupando entre corchetes a sus elementos, los cuales deberán estar separados por comas
Ejemplo:
primos = [13, 2, 5, 17, 23]
Lista de nombre primos que contiene 5 números enteros
paises = ['Perú', 'Argentina', 'Chile', 'Brasil']
Lista de nombre paises que contiene 4 datos tipo texto
data = ['Julio', 13.5, 'Juan', 18, 'María', 11.5]
Lista de nombre data que contiene 2 datos tipo real, 1 dato tipo entero y 3 datos tipo texto
Ing. Juan Puerta Arce
Se puede usar la función print para mostrar una lista en pantalla:
Ejemplo:
primos = [13, 2, 5, 17, 23] print('Primera Lista: ', primos)
paises = ['Perú', 'Argentina', 'Chile', 'Brasil'] print('Seguda Lista: ', paises)
data = ['Julio', 13.5, 'Juan', 18, 'María', 11.5] print('Tercera Lista: ', data)
Resultado de la ejecución
Ing. Juan Puerta Arce
TIPS
Una lista puede tener como elementos a otras listas:
Ejemplo:
coordenadas = [[30, 12, 56],[-78, 23, 123]]
print('La lista es: ', coordenadas)
Resultado de la ejecución
Hay 2 listas como elementos de otra lista
TIPS
Una lista en Python se considera como una nueva clase o tipo de dato
Ing. Juan Puerta Arce
Ejemplo:
data = ['Lima', [30, 12, 56], 'Piura',[-78, 23, 123]]
print('La lista es: ', data)
print('Tipo: ', type(data))
Resultado de la ejecución
Ing. Juan Puerta Arce
Usando la función o método range() se pueden crear listas de datos numéricos enteroscon una regla de sucesión
Ejemplo:
lista1 = range(10)
#lista1 = [0,1,2,3,4,5,6,7,8,9]
lista2 = range(4,15)
#lista2 = [4,5,6,7,8,9,10,11,12,13,14]
lista3 = range(5,20,3)
#lista3 = [5,8,11,14,17]
lista4 = range(10,4,-1)
#lista4 = [10,9,8,7,6,5]
Ing. Juan Puerta Arce
¿Cómo saber el tamaño de una lista (cantidad de elementos que contiene)?
Se usa la función o método len()
Ejemplo:
datos = ['Voltaje', 220, 'Corriente', 1.5]
print('El tamaño de la lista es:',len(datos))
Resultado de la ejecución
center = ['A', [1,2], 'B']
print('El tamaño de la lista es:',len(center))
Resultado de la ejecución
FUNCIONES Y OPERADORES PARA EL MANEJO DE LISTAS
Ing. Juan Puerta Arce
Para utilizar los elementos almacenados en una lista se toman en cuenta índices,los cuales referencian la posición que cada elemento ocupa en la lista
fecha = ['Domingo', 3, 'Abril', 2016]
0 1 2 3
índices
Ejemplo:
fecha[0] hace referencia al primer elemento: ‘Domingo’fecha[1] hace referencia al segundo elemento: 3fecha[2] hace referencia al tercer elemento: ‘Abril’fecha[3] hace referencia al cuarto elemento: 2016
Operaciones con los elementos de una lista
Ing. Juan Puerta Arce
Ejemplo:
poblacion = ['Perú', 25232000 , 'Colombia', 3741290, 'Uruguay', 3247000]
#imprimiendo los datos:print('Países','Habitantes',sep='\t')print('---------------------')print(poblacion[0],poblacion[1],sep='\t')print(poblacion[2],poblacion[3],sep='\t')print(poblacion[4],poblacion[5],sep='\t')
Resultado de la ejecución
Ing. Juan Puerta Arce
Ejemplo:
poblacion = ['Perú', 25232000 , 'Colombia', 3741290, 'Uruguay', 3247000]
#sumando las poblaciones:suma = poblacion[1] + poblacion[3] + poblacion[5]
print('La población total es:',suma,'habitantes')
Resultado de la ejecución
Ing. Juan Puerta Arce
TIPS
Tener cuidado en caso una lista tenga alguna otra lista como elemento:
notas = ['Carlos Pastor', [12, 15.5, 16], 'María Romero', [15.5, 18,15]]
#calculando el promedio de cada alumno:promCarlos = (notas[1][0] + notas[1][1] + notas[1][2])/3
promMaria = (notas[3][0] + notas[3][1] + notas[3][2])/3
#mostrando los promedios:print('Alumno','Promedio',sep='\t\t')print(notas[0],round(promCarlos),sep='\t')print(notas[2],round(promMaria),sep='\t')
Ejemplo:
Ing. Juan Puerta Arce
Resultado de la ejecución del ejemplo anterior:
Resultado de la ejecución
notas = ['Carlos Pastor', [12, 15.5, 16], 'María Romero', [15.5, 18,15]]
notas[1]
[12, 15.5, 16]
notas[1][0] notas[1][1] notas[1][2]
Importante:
Ing. Juan Puerta Arce
TIPS
No se puede extraer un elemento fuera del rango de la lista:
numeros = [45, 78, 23, 123, 8]
#se desea imprimir el séptimo elemento de la listaprint(numeros[6])
Ejemplo:
Al ejecutar el programa saldrá un mensaje de error indicando que el índice estáfuera del rango
0 1 2 3 4
Ing. Juan Puerta Arce
TIPS
Python permite el uso de índices con valor negativo:
Ejemplo:
numeros = [45, 78, 23, 123 , 8]
#mostrando los elementos de la lista desde la posición finalprint(numeros[-1])print(numeros[-2])print(numeros[-3])print(numeros[-4])print(numeros[-5])
Resultado de la ejecución
Usar índice -1 indica la referencia al último elemento de la lista, desde ahí se puede bajar el valor del índice hasta llegar a referenciar el primer elemento
Los elementos de una lista pueden ser modificados encualquier momento del programa tanto en valor como entipo
Importante:
Ing. Juan Puerta Arce
Ing. Juan Puerta Arce
Ejemplos:
letras = ['A','B','C','D','E','F','G','H']
letras[1] = 8 #se sustituye el segundo elemento 'B' por el número 8print('La lista ahora es:',letras)
Resultado de la ejecución
letras = ['A','B','C','D','E','F','G','H']
letras[1] = [8] #se sustituye el segundo elemento 'B' por la lista [8]print('La lista ahora es:',letras)
Resultado de la ejecución
Modificación de los elementos de una lista
Ing. Juan Puerta Arce
letras = ['A','B','C','D','E','F','G','H']
letras[3] = 'UPC' #se sustituye el 4to. elemento 'D' #por el texto 'UPC'
print('La lista ahora es: ',letras)
Resultado de la ejecución
letras = ['A','B','C','D','E','F','G','H']
letras[0] = [0,0,0] #se sustituye el primer elemento 'A' #por la lista [0,0,0]
print('La lista ahora es: ',letras)
Resultado de la ejecución
Ing. Juan Puerta Arce
Formación de sublistas
Una sublista se forma extrayendo una parte o “porción” de otra lista
Para extraer una sublista de una lista se emplea el siguiente formato:
nombre[a:b]
Donde:
nombre: Indica el nombre de la lista de la cual se extraerá la sublista
a: Indica el valor del índice a partir del cual se extraerá la sublista
b: Indica el valor del límite superior para extraer la sublista. El valor de b no seincluye
Ejemplo:
dias=['Lunes','Martes','Miercoles','Jueves','Viernes','Sábado','Domingo']
subl = dias[3:6] #se extrae de la lista dias los elementos de los #índices 3,4,5 (subl es la sublista formada)
print('Dias seleccionados:',subl)
Resultado de la ejecución
3 4 5
Ing. Juan Puerta Arce
Ing. Juan Puerta Arce
TIPS
Otras formas de crear sublistas:
dias=['Lunes','Martes','Miercoles','Jueves','Viernes','Sábado','Domingo']
subl = dias[4:5] #se forma una sublista que contiene como único elemento #aquel que se encuentra en el índice 4 de la lista dias
print('Dias seleccionados:',subl)
subl = dias[2:2] #se forma una sublista vacía ya que no tiene sentido #extraer elementos desde el índice 2 al 1
print('Dias seleccionados:',subl)
subl = dias[:4] #se forma una sublista con los elementos de los índices#0,1,2 y 3 de la lista dias
print('Dias seleccionados:',subl)
subl = dias[4:] #se forma una sublista con los elementos de los índices#4,5 y 6 de la lista dias
print('Dias seleccionados:',subl)
Ing. Juan Puerta Arce
Si se desea copiar el contenido de una lista en otra:
letras = ['A','B','C','D','E','F','G','H']
clona = letras[:] #se forma la lista clona con todos los elementos de #la lista letras
print('La listaA es:',clona)
Resultado de la ejecución
TIPS
Ejemplo:
Ing. Juan Puerta Arce
letras = ['A','B','C','D','E','F','G','H']
letras[2:5] = ['y','y','y'] #se sustituye la sublista ['C','D','E']#por la lista ['y','y','y']
print('La lista ahora es:',letras)
Resultado de la ejecución
letras = ['A','B','C','D','E','F','G','H']
letras[1:4] = ['x','x'] #se sustituye la sublista ['B','C','D']#por la lista ['x','x']
print('La lista ahora es:',letras)
Resultado de la ejecución
Sustitución de una sublista
Ejemplos:
Ing. Juan Puerta Arce
letras = ['A','B','C','D','E','F','G','H']
letras[2:5] = ['@'] #se sustituye la sublista ['C','D','E']#por la lista ['@']
print('La lista ahora es:',letras)
Resultado de la ejecución
Ing. Juan Puerta Arce
Concatenación de 2 o mas listas:
Para ello se utiliza el operador +
Ejemplo:lista1 = ['Algebra', 'Aritmética','Geometría']
lista2 = [2016, 2017]
#se concatena la lista1 y lista2 para formar lista3lista3 = lista1 + lista2
print('Lista3 es:',lista3,'y su tamaño es:',len(lista3))
Resultado de la ejecución
Concatenar listas significa juntar sus elementos para formar una lista nueva
Ing. Juan Puerta Arce
TIPS
Cuidado al utilizar el operador + para concatenar listas:
Ejemplos:
lista1 = ['A','B','C','D']
lista2 = lista1 + 5
Error!, no se puede concatenar un lista con un dato tipo numérico
lista1 = ['A','B','C','D']
lista2 = lista1 + 'VOCALES'
Error!, no se puede concatenar un lista con un dato tipo texto
lista1 = ['A','B','C','D']
lista2 = lista1 + [5]
Correcto, al colocar [] al dato ‘VOCALES’ ya se formóuna lista de 1 elemento y se puede concatenar
lista2 sería [‘A’, ‘B’, ‘C’, ‘D’, 5]
lista1 = ['A','B','C','D']
lista2 = lista1 + ['VOCALES']
Correcto, al colocar [] al dato 5 ya se formó una lista de 1 elemento y se puede concatenar
lista2 sería [‘A’, ‘B’, ‘C’, ‘D’, ‘VOCALES’]
TIPS
Ing. Juan Puerta Arce
TIPS
Ejemplos:
letras = ['A','B','C','D','E','F','G','H']
letras.extend([4.16,'pi']) #concatena la lista [4.16,'pi'] a la #lista letras
print('La lista ahora es:',letras)
Resultado de la ejecución
Se puede usar la función extend() para concatenar listas
reserv = ['eof','end']
reserv.extend('fff') #Se concatena el texto 'fff' a la lista reserv.#Para este caso se toma al texto 'fff' como la #lista:['f','f','f']
print('Ahora la lista es:',reserv)
Resultado de la ejecución
Ing. Juan Puerta Arce
Ing. Juan Puerta Arce
El tamaño de una lista puede aumentar insertandoelementos en la misma.
Importante:
Ing. Juan Puerta Arce
Inserción de elementos en una lista:
letras = ['A','B','C','D','E','F','G','H']
letras[2:2] = [100] #inserta la lista [100] desde la posición 2 de la #lista letras
print('La lista ahora es:',letras)
Resultado de la ejecución
letras = ['A','B','C','D','E','F','G','H']
letras[7:7] = [3,8] #inserta la lista [3,8] desde la posición 7 de la #lista letras
print('La lista ahora es:',letras)
Resultado de la ejecución
Ejemplos:
Ing. Juan Puerta Arce
letras = ['A','B','C','D','E','F','G','H']
letras[0:0] = 'upc' #inserta el texto 'upc' desde la posición 0 de la #lista letras. Para este caso se toma al texto 'upc' como la lista ['u','p','c']
print('La lista ahora es:',letras)
Resultado de la ejecución
letras = ['A','B','C','D','E','F','G','H']
letras[8:8] = [0,0,0,0] #inserta la lista [0,0,0,0] desde la posición 8 #de la lista letras
print('La lista ahora es:',letras)
Resultado de la ejecución
Ing. Juan Puerta Arce
TIPSTIPS
Se puede usar la función insert() para insertar elementos en una determinada posición de la lista
letras = ['A','B','C','D','E','F','G','H']
letras.insert(2,'011001') #inserta el texto '011001' en la posición 2 #de la lista letras
print('La lista ahora es:',letras)
Resultado de la ejecución
Ejemplos:
Ing. Juan Puerta Arce
languajes = ['python','java','c++']
languajes.insert(1,['f','h','k']) #inserta la lista ['f','h','k']#en la posición 1 de la lista #languajes
print('La lista ahora es:',languajes)
Resultado de la ejecución
TIPSTIPS
Ing. Juan Puerta Arce
Se puede usar la función append() para insertar un elemento al final de una lista
Ejemplo:
letras = ['A','B','C','D','E','F','G','H']
letras.append(1000) #inserta el entero 1000 al final de la lista #letras
print('La lista ahora es:',letras)
Resultado de la ejecución
El tamaño de una lista puede disminuir eliminandoelementos en la misma.
Importante:
Ing. Juan Puerta Arce
Ing. Juan Puerta Arce
Eliminación de elementos en una lista:
letras = ['A','B','C','D','E','F','G','H']
letras[0:3] = [] #elimina de la lista letras la sublista ['A','B','C']
print('La lista ahora es:',letras)
Resultado de la ejecución
Otra opción es utilizar la palabra reservada del
letras = ['A','B','C','D','E','F','G','H']
del letras[0:3] #elimina de la lista letras la sublista ['A','B','C']
print('La lista ahora es:',letras)
Ing. Juan Puerta Arce
letras = ['A','B','C','D','E','F','G','H']
letras[7:8] = [] #elimina de la lista letras el elemento final
print('La lista ahora es:',letras)
Resultado de la ejecución
Otra opción es utilizar la palabra reservada del
letras = ['A','B','C','D','E','F','G','H']
del letras[7] #elimina de la lista letras el elemento final
print('La lista ahora es:',letras)
Ing. Juan Puerta Arce
TIPS
Si se desea eliminar una lista de la memoria:
letras = ['A','B','C','D','E','F','G','H']
del letras #elimina la lista letras de la memoria
Si se desean eliminar todos los elementos de una lista:
letras = ['A','B','C','D','E','F','G','H']
letras[:] = [] #elimina todos los elementos la lista letras
print('La lista ahora es:',letras)
La lista letras ya no existe en la memoria y por lo tanto ya no puede utilizarse por ninguna función
Resultado de la ejecución
Ejemplo:
Ejemplo:
Ing. Juan Puerta Arce
TIPS
Se pude usar la función remove() para eliminar un elemento de una lista:
Ejemplo:
codigos = ['00','01','50','DS','E2','F9','G2','HQ']
codigos.remove('E2') #Si se encuentra el dato 'E2' se elimina de la lista
print('Ahora la lista es: ',codigos)
Resultado de la ejecución
Si hay dos o mas datos iguales en la lista, remove elimina el primer dato que encuentra
Si el dato no esta en la lista, remove retorna una excepción y detiene la ejecución.
Ing. Juan Puerta Arce
Ejemplo: función index()
codigos = ['00','01','50','DS','E2','F9','G2','HQ']
p = codigos.index('50') #Busca el elemento '50' en la lista.#Si se encuentra retorna el índice#de su posición
print('El dato se encontró en la posición:',p)
Resultado de la ejecución
Si hay dos o mas datos iguales en la lista, index retorna la posición de primer dato encontrado.
Si el dato no esta en la lista, index retorna una excepción y detiene la ejecución.
Búsqueda de elementos en una lista:
Ejemplo: Uso de la palabra reservada in
Ing. Juan Puerta Arce
codigos = ['00','01','50','DS','E2','F9','G2','HQ']
p = '00' in codigos #si '00' esta en la lista codigos, se retorna #True, caso contrario se retorna False
print('dato retornado es: ',p)
Resultado de la ejecución
Ing. Juan Puerta Arce
elemento1 elemento 2 elemento 3 . . . . . . . . . . . . . Elemento N-1
0 1 3 N-1
for i in range(N)
El bucle for permite a través de la variable de iteración, recorrer cada elemento de una lista haciendo referencia a su índice
lista
Ejemplo:
from random import *
#se lee la cantidad de números a almacenarN = int(input('Ingrese el tamaño de la lista:'))
numeros = [] #se crea una lista vacía
for i in range(N): #recorre cada índice de la listanumeros.insert(i,randint(10,99)) #se agrega un valor aleatorio
#de 2 dígitos a cada elemento#de la lista
#se muestra cada elemento almacenado
print('elemento',i,':',numeros[i])
Un programa que crea una lista para almacenar N números enteros aleatoriosde 2 cifras y muestra los valores almacenados en la pantalla
Solución:
Ing. Juan Puerta Arce
Ing. Juan Puerta Arce
Proceso de iteración del for en el resultado del ejemplo anterior:
Para i = 0:
28numeros =0
Para i = 1:
numeros = 28
0
57
1
Para i = 2:
numeros = 28
0
57
1
56
2
Inserta en la posición 0 de la lista numerosun valor aleatorio de 2 dígitos
Imprime: 'elemento 0 : 28'
Inserta en la posición 1 de la lista numerosun valor aleatorio de 2 dígitos
Imprime: 'elemento 1 : 57'
Inserta en la posición 2 de la lista numerosun valor aleatorio de 2 dígitos
continua
Ing. Juan Puerta Arce
Para i = 3:
Para i = 4:
Para i = 5:
numeros = 28
0
57
1
56
2
Inserta en la posición 3 de la lista numerosun valor aleatorio de 2 dígitos
60
3
numeros = 28
0
57
1
56
2
Inserta en la posición 4 de la lista numerosun valor aleatorio de 2 dígitos
60
3
20
4
numeros = 28
0
57
1
56
2
Inserta en la posición 5 de la lista numerosun valor aleatorio de 2 dígitos
60
3
20
4
52
5
Imprime: 'elemento 3 : 60'
Imprime: 'elemento 4 : 20'
Imprime: 'elemento 5 : 52'
continua
Ing. Juan Puerta Arce
Para i = 6:
Para i = 7:
Para i = 8:
numeros = 28
0
57
1
56
2
Inserta en la posición 6 de la lista numerosun valor aleatorio de 2 dígitos 60
3
20
4
52
5Imprime: 'elemento 6 : 47'
47
6
numeros = 28
0
57
1
56
2
Inserta en la posición 7 de la lista numerosun valor aleatorio de 2 dígitos 60
3
20
4
52
5Imprime: 'elemento 7 : 49'
47
6
49
7
numeros = 28
0
57
1
56
2
Inserta en la posición 8 de la lista numerosun valor aleatorio de 2 dígitos
60
3
20
4
52
5Imprime: 'elemento 8 : 44'
47
6
49
7
44
8
Para i = 9:
numeros = 28
0
57
1
56
2
Inserta en la posición 9 de la lista numerosun valor aleatorio de 2 dígitos
60
3
20
4
52
5
Imprime: 'elemento 9 : 13'
47
6
49
7
44
8
13
9
Ing. Juan Puerta Arce
Ejemplo:
Un programa que genera 2 listas. En la primera se almacenan el nombre de Npersonas, y en la segunda su edad. Dichos datos son leídos y finalmente mostrados en pantalla
from random import *
#se lee la cantidad de datos a almacenarN = int(input('Ingrese el tamaño de la lista:'))
nombres = [] #se crea una lista para almacenar los nombresedades = [] #se crea una lista para almacenar las edades
for i in range(N): #recorre cada índice de la listaprint('Ingrese nombre',i+1,':',end='') nombre = input() #se lee el nombre nombres.insert(i,nombre) #se almacena el nombre leído en la lista
#se lee la edadedad = int(input('Ingrese su edad:'))edades.insert(i,edad) #se almacena la edad en la lista
#se muestran los datos en pantallaprint('\n\nDatos registrados:\n')for i in range(N): #recorre cada índice de la lista
print(nombres[i],edades[i],sep='\t')
Solución:
Ing. Juan Puerta Arce
ResumenLas listas en Python son agrupaciones ordenadas de elementos del mismo tipo o no
Una lista en python es un nuevo tipo o clase llamado list
Una lista puede contener como elementos incluso otras listas
Para saber el tamaño de una lista se utiliza la función len
Se puede modificar el dato de una lista tanto en valor y por ende en tipo
Para trabajar con los elementos de una lista se toman cuenta índices
Los índices referencian la posición de un elemento en la lista
Ing. Juan Puerta Arce
Para extraer sublistas de una lista se utiliza el operador : como rango entre el límite inicial y final
Una sublista es una parte o porción que se extrae de una lista mayor
El tamaño de una lista puede aumentar a través de operaciones de inserción de elementos
El tamaño de una lista puede reducirse a través de operaciones de eliminación de elementos
Se pueden concatenar 2 o mas listas usando el operador + (tener cuidado en que ambos operandos sean listas)
El uso del bucle for es importante para recorrer elementos de una lista y hacer un procesamiento de los mismos.
Se puede usar la función range para crear listas numéricas con una regla de sucesión