# estructuras de datos
# una variable nos permite almacenar un valor
# muchos valores no es comodo usar muchas variables
# Estructuras que nos permiten almacenar un numero arbitrario de valores
# tuplas: se definen con paréntesis, no se pueden modificar
tupla=(1,2,3)
otra_tupla=(1,"hola",7.8,False)
a,b,c=tupla #desempaquetado de tupla a=1, b=2 y c=3
def estadistica(*args):
total=0
for numero in args:
total+=numero
return (total,total/len(args))
print(estadistica(1,2,3))
# listas: colección de elementos que se puede modificar
# es el equivalente al array de otros lenguajes
lista=[1,2,3,4]
otra_lista=[1,"hola",7.0,True]
lista[1]=90
print(lista)
for i in range(len(lista)):
print(lista[i])
lista[i]*=2
for numero in lista:
print(numero)
numero=numero*2
print(lista)
# Comprension de listas
# [nuevo_elemento for elemento in secuencia if condición]
lista1=[elemento for elemento in lista]
print(lista1)
lista2=[elemento for elemento in lista if elemento<20]
print(lista2)
lista3=[elemento/2 for elemento in lista if elemento<20]
print(lista3)
lista4=[]
for elemento in lista:
if elemento<20:
lista4.append(elemento/2)
print(lista4)
# diccionarios: conjunto de pares clave, valor
diccionario={"Nombre":"Ana","nota":7,"email":"ana@ana.com"}
print(diccionario)
otro_diccionario={1:"Ana",3:7,9:"ana@ana.com"}
print(otro_diccionario)
print(diccionario["Nombre"])
print(otro_diccionario[1])
diccionario["Nombre"]="Ana Pi"
print(diccionario)
for elemento in diccionario:
print(elemento)
for elemento in diccionario.values():
print(elemento)
for elemento in diccionario.items():
print(elemento)
# conjunto es lo mismo pero no podemos tener valores repetidos
conjunto={1,2,3,5,5,5,5,5}
print(conjunto)
# tener estructuras complejas: estructuras dentro de estructuras
tupla_rara=(1,"cadena",
["a","b","c",
{"nombre":"Ana",
"notas":(6,9,1,
{"nota":9,"observaciones":"Progresa adecuadamente"})}])
valor=tupla_rara[2][3]["notas"][3]["observaciones"]
print(valor)
clase=[{"nombre":"Ana","notas":[1,2,3]},
{"nombre":"Pep","notas":[11,2,3]},
{"nombre":"Eva","notas":[1,22,3]}]
for alumno in clase: # con esto recorro los alumnos
print(alumno)
print("Para el alumno "+alumno["nombre"]) # ya tengo un alumno individual
total=0
for nota in alumno["notas"]: # recorro sus notas
print(nota) # ya tengo la nota individual
total+=nota
print ("La media es "+str(total/len(alumno["notas"])))