Curso de introducción a la programación en python

Autor: Luis Fernando Apáez Álvarez

Clase 15: Matrices y tuplas

De cadenas a listas y viceversa

Comenzaremos la clase viendo cómo podemos convertir una cadena de texto en una lista. Para ello bastará con utilizar .split() en la cadena de texto en cuestión. Por ejemplo

Para realizar la operación inversa utilizaremos .join() cuyo parámetro es la lista cuyos elementos queremos unir en una cadena de texto. Por ejemplo, de la lista lista_cadena podemos regresar la cadena de texto original usando

donde " " indica que uniremos los elementos de la lista lista_cadena por medio de espacios en blanco. Tenemos otras alternativos como

Matrices

Podemos crear matrices en Python a partir de listas, más específicamente, de listas dentro de una lista. Por ejemplo consideremos

la cual intente recuperar la idea de una matriz en matemáticas de la forma

$$ \left(\begin{array}{ccc} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{array}\right) $$

sin embargo, claramente nuestra matriz matriz aún no tiene la forma que buscamos. Por otro lado podemos acceder a los elementos de matriz mediante índices dónde utilizaremos dos corchetes para ello. Por ejemplo matriz[0][1] indica que accedemos a la primer lista de matriz, esto es [1,2,3] y depués accedemos al segundo elemento (índice 1) de esta lista, de tal manera matriz[0][1] nos arroja el elemento 2. En efecto

Podemos asociar la primer lista de matriz como la primer fila de una matriz, la segunda lista como la segunda fila y así sucesivamente. Luego, dado que el número de elementos de cada lista dentro de matriz debe ser el mismo, entonces este número será el número de columnas. En nuestro ejemplo tenemos una matriz de tres columnas. En consecuencia, cuando empleamos matriz[i][j] estamos accediendo al elemento que se encuentra en la fila i y en la columna j (es preciso recordar que los índices comienzan en el cero), de tal los elementos de una matriz en Python tendrán los índices

$$ \left(\begin{array}{ccc} a_{00} & a_{01} & a_{02} \\ a_{10} & a_{11} & a_{12} \\ a_{20} & a_{21} & a_{22} \end{array}\right) $$

Veamos por ejemplo:

Para acceder a una columna completa no podemos realizar un código similar al anterior, pero podemos utilizar en cambio un bucle for

Finalmente, podemos ahora si ver a matriz como una matriz de $3\times3$

Aunque nos gustaría que al sumar dos matrices baste con efectuar matriz_1 + matriz_2, sabemos que éstas en realidad son lista, por lo que la operación + no será la adición que conocemos. Para realizar las operaciones matemáticas entre matrices, por lo general, debemos de remontarnos a los elementos de las mismas uno por uno.

Tuplas

De las principales características de las listas son las acciones que podemos realizar, tales como agregar o eliminar elementos, cambiar los elementos, cambiar los índices, etcétera. Sin embargo, para el caso de las tuplas los elementos serán inmutables (no modificable). Entonces, básicamente una tuplas es una lista inmutable y para definirla utilizaremos paréntesis en vez de corchetes:

La cual tendrá las mismas funciones predefinidas que una lista, siempre y cuando sea una función que no altere los elementos de dicha tupla (pues esto no es posible y por ende se marcaría un error). Para efectuar todo lo que hemos aprendido sobre las listas en las tuplas, podemos convertir una tupla en lista utilizando list() cuyo parámetro es la tupla en cuestión. Por ejemplo

Y después podemos regresar a la tupla original

Es así como podemos trabajar con tuplas y listas, haciendo así las cosas que ya sabíamos de listas y pasándolas (de alguna forma) a las tuplas.

Socialmedia.PNG