Sei sulla pagina 1di 28

Lenguaje de programación estructurada

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

stu1 = float(input("Enter grade for student no. 1: "))


stu2 = float(input("Enter grade for student no. 2: "))
stu3 = float(input("Enter grade for student no. 3: "))
stu4 = float(input("Enter grade for student no. 4: "))
stu5 = float(input("Enter grade for student no. 5: "))
Sin listas
total = stu1 + stu2 + stu3 + stu4 + stu5
average = total / CLASS_SIZE

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

percentages = [50.0, 100.0, 78.5, 99.9, 65.1]


# otros ejemplos
letters = ['A', 'B', 'A']
names = ["Juan Carlos", "Luisa", "Ax’l", "Nadia"]
Accesando la lista
La lista completa
print(percentages)

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

grades[i] = 'A+' # Modify element

i = i + 1
Ojo

Qué pasa?
list1 = [1,2]
list2 = [2,1]
print (list1, list2)

# Two ref to one list


list1 = list2
print (list1, list2)

list1[0] = 99
print (list1, list2)
Y acá?
list1 = [1,2,3]
list2 = []

for i in range (0, 3, 1):


list2.append(list1[i])

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)

Values = [100, 200, 300, 400, 500, 600, 500]


# Use remove para borrar 1 solo valor.
values.remove(500)
print(values)
Del y remove
elements = ["A", "B", "C", "D"]
# Remove los dos de en medio.
del elements[1:3]
print(elements)
Operando en tuplas
tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
tup3 = tup1 + tup2;
print tup3
tup4 = 3*tup2;
print tup4
lista= [4 , 6 , 8, 10]
tup5=tuple(lista)
print(tup5)
Diccionario

Colección no-ordenada de valores que son
accedidos a través de una clave. Es decir, en
lugar de acceder a la información mediante el
índice numérico, como es el caso de las listas y
tuplas, es posible acceder a los valores a
través de sus claves, que pueden ser de
diversos tipo.

En otros lenguajes: hash
Diccionario

Las claves son únicas dentro de un diccionario, es decir
que no puede haber un diccionario que tenga dos veces
la misma clave, si se asigna un valor a una clave ya
existente, se reemplaza el valor anterior.

No hay una forma directa de acceder a una clave a
través de su valor, y nada impide que un mismo valor
se encuentre asignado a distintas claves

La información almacenada en los diccionarios, no tiene
un orden particular. Ni por clave ni por valor, ni tampoco
por el orden en que han sido agregados al diccionario.
Ejemplo
en_es = {"red" : "rojo", "green" : "verde", "blue" :
"azul", "yellow":"amarillo", "scarlet" : "rojo"}
print en_es
print en_es["red"]
es_fr = {"rojo" : "rouge", "verde" : "vert", "azul" :
"bleu", "amarillo":"jaune"}
print "La palabra red en frances es: " +
es_fr[en_es["red"]]
Nota

La clave tiene que ser NO MUTABLE. No puede
ser una lista.

dic = { [1,2,3]:"abc"}

Pero si una tupla

dic = { (1,2,3):"abc", 3.1415:"abc"}

dic.items()

dic.keys()

dic.values()
Ejemplo
punto = {'x': 2, 'y': 1, 'z': 4}
print(punto[“z”])

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

Potrebbero piacerti anche