Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
UNI – FIIS
Glen Rodríguez R.
Listas
●
Semejante a los arreglos de C o de Java
●
Así como en los strings o cadenas, el ORDEN
de los elementos importa.
●
Aparte de len (como los strings), también tiene
la función max y min
Ejercicio
●
Hacer un programa que pida las notas de los
alumnos de una clase. Luego debe imprimir todas las
notas y el total de notas
●
Sin listas:
SIZE = 5
print()
print("GRADES")
print("The average grade is %.2f%%", %average)
print("Student no. 1: %.2f", %stu1)
print("Student no. 2: %.2f", %stu2)
print("Student no. 3: %.2f", %stu3)
print("Student no. 4: %.2f", %stu4)
print("Student no. 5: %.2f", %stu5)
Creando una lista
Formato (lista de ‘n’ elementos):
<nombre_lista> = [<valor 1>, <valor 2>, ... <valor n>]
Ejemplo:
# Lista con 5 elementos
Un elemento
print(percentages[1])
Indices negativos
●
Python permite usar índices negativos (-1 es el
último elemento, -2 el penúltimo, etc.)
●
Pero mejor no usarlo, la gente que recién
aprende Python pero ya sabe C o Java se
puede confundir
Creando una lista sin tamaño fijo
●
Paso 1: crear la variable
Formato:
<list name> = []
Ejemplo:
classGrades = []
Creando lista de tamaño no fijo
●
Paso 2: inicializar la lista con elementos
●
Usar función “append”
for i in range (0, 4, 1):
# Each time through the loop: create new element = -1
# Add new element to the end of the list
classGrades.append(-1)
Programa de los alumnos con listas
def read(classGrades):
total = 0
average = 0
for i in range (0, CLASS_SIZE, 1):
temp = i + 1
print("Enter grade for student no.", temp, ":")
classGrades[i] = float(input (">"))
total = total + classGrades[i]
average = total / CLASS_SIZE
return(classGrades, average)
Continuación
def display(classGrades, average):
print()
print("GRADES")
print("The average grade is %.2f%%" %average)
for i in range (0, CLASS_SIZE, 1):
temp = i + 1
print("Student No. %d: %.2f%%"
%(temp,classGrades[i]))
def start():
classGrades = initialize()
classGrades, average = read(classGrades)
display(classGrades,average)
start()
Buscando / modificando
grades = ['A','B','C','A','B','C','A']
last = len(grades) - 1
i = 0
while (i <= last):
if (grades[i] == 'A'): # Search for matches
i = i + 1
Ojo
●
Qué pasa?
list1 = [1,2]
list2 = [2,1]
print (list1, list2)
list1[0] = 99
print (list1, list2)
Y acá?
list1 = [1,2,3]
list2 = []
print(list1, list2)
list1[1] = 99
print(list1, list2)
Tuplas
●
Parecido a una lista
●
Pero son inmutables
●
Se usan para guardar data que NO debería
cambiar
Creando tuplas
Formato:
nombre_tupla = (valor1, valor2...valorn)
Ejemplo:
tup = (1,2,"UNI",0.3)
Ejemplo
tup = (1,2,"foo",0.3)
print (tup)
print (tup[2])
tup[2] = "bar" Error (tratar de cambiar un immutable):
“TypeError: object does not support item assignment”
Tupla vacía y de 1 elemento
●
t1= ()
●
t2= (34,)
●
Una tupla no se puede cambiar pero si eliminar
del todo:
●
del t2
●
Y ya no existe t2.
Del y Remove
●
En listas puede borrar un solo elemento
values = [100, 200, 300, 400, 500, 600]
# Use del para remover 1 o varios indice.
del values[2]
print(values)
materias = {}
materias["lunes"] = [6103, 7540]
materias["martes"] = [6201]
materias["miércoles"] = [6103, 7540]
materias["jueves"] = []
materias["viernes"] = [6201]
print materias["lunes"]
Ejemplos
for dia in materias:
print (dia, ":", materias[dia])
print materias["domingo"]
print materias.get("domingo")
Ver si hay una clave
d = {'x': 12, 'y': 7}
if d.has_key('x'):
print d['x'] # Imprime 12
if d.has_key('z'):
print d['z'] # No se ejecuta
if 'y' in d:
print d['y'] # Imprime 7