Els arrays (matrius) són conjunts d'objectes que estan ordenats en una seqüència numerada començant des de 0 fins al últim element.
Ex.: Suposem que tenim una array que conté els següents nombres: {12, 7, 32, 15, 113, 0, 7} . Aquí està la manera com s'emmagatzema amb el seu número a la llista:
A Python podem trobar 3 tipus diferents d'arrays que tenen moltes coses en comú i algunes diferències: tuples, llistes i diccionaris.
Tuples
Són estructures de dades que contenen un conjunt d'objectes que poden ser de diferents tipus. Les seves característiques són:
Llistes
Bàsicament, una llista és un objecte similar a una tupla, però a més, és pot modificar (és mutable). Per tant, a més de les característiques de les tuples (accesibles, anidables, iterables i amb mètodes informatius), també:
Existeixen dues funcions que ens permeten transformar una tupla en una llista i a l'inrevés:
tuple(li) # Transforma "li" en una tupla
list(t) # Transforma "t" en una llista
Diccionaris
Els diccionaris són objectes semblants a les llistes, però no tenen un índex que els ordeni de manera predeterminada, sinó que contenen parells clau-valor.
Ara, a mode d'exemple, anem a escriure un programa amb tota aquesta teoria. Crearem i manipularem una array amb elspunts ficats pels juagadors d'un equip de bàsquet:
# Declaram i inicialitzam una tupla
punts_t = (12, 7, 32, 15, 13, 0, 7)
# Transformam la tupla a una llista
punts_li = list(punts_t)
# Canviam valors de l'array
punts_li[3] = 26
punts_li[1] = 7
# Imprimim la llista
for ele in punts_li:
print("Puntuació jugador", punts_li.index(ele), "=", ele)
# Imprimim la puntuació total de l'equip
punts = 0
for ele in punts_li:
punts = punts + ele
print("Puntuació total de l'equip =", punts)
Exercicis:
1. Escriu el codi d'un programa que contengui una tupla amb el nom de tots els jugadors de la plantilla de bàsquet del Barça i que els imprimeixi tots.
2. Afegeix al codi anterior una altra tupla que contengui la puntuació particular de cadascun dels jugadors al darrer partit i modifica'l perquè ara imprimeixi el nom del jugador juntament a la seva puntuació.
3. Escriu el codi anterior amb un únic diccionari.
4. Afegeix el codi necessari perquè, a més de les puntuacions particulars, al final també s'imprimeixi la puntuació total de l'equip (fent la suma de tots els valors del diccionari).
5. Fent servir comandaments de control de fluxe, afegeix el codi necessari perquè l'aplicació permeti triar entre imprimir tots els jugadors amb les seves puntuacions o nomes la puntuació total de l'equip.
6. Donades les matrius 2x2:
a. Llegeix l'enunciat complet d'aquest exercici i realitza l'anàlisi EPS i el diagrama de flux corresponent.
b. Escriu un programa a on es defineixin les dues matrius fent servir dues llistes anidades.
c. Fes que aquest programa pugui realitzar les següents operacions en funció de l'elecció de l'usuari (if, elif, else): A+B, A-B, A*B, AT i A-1. El resultat s'ha de mostrar per pantalla amb forma de matriu.
d. Fes que el programa demani si es vol realitzar alguna operació més. En cas negatiu, s'ha de mostrar un missatge de comiat.
e. Fes que el programa et demani els valors de les matrius (D'alguna manera s'haurà d'avisar a l'usuari de que es tracten de matrius 2x2).