# definimos una cadena de texto
cadena = "Hoy es martes"
# utilizamos .split() en la cadena
lista_cadena = cadena.split()
print(lista_cadena)
['Hoy', 'es', 'martes']
# veamos sus elementos
for i in range(0,len(lista_cadena)):
print(lista_cadena[i], "|", end = " ")
Hoy | es | martes |
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
cadena_de_nuevo = " ".join(lista_cadena)
print(cadena_de_nuevo)
Hoy es martes
donde " "
indica que uniremos los elementos de la lista lista_cadena
por medio de espacios en blanco. Tenemos otras alternativos como
# unimos con el carácter |
cadena_de_nuevo_2 = "|".join(lista_cadena)
print(cadena_de_nuevo_2)
print("-" * 30)
# unimos con el carácter *
cadena_de_nuevo_3 = "*".join(lista_cadena)
print(cadena_de_nuevo_3)
Hoy|es|martes -------------------------------------------------- Hoy*es*martes
# creamos unas listas dentro de una lista
matriz = [[1,2,3], [4,5,6], [7,8,9]]
print(matriz)
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
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
print(matriz[0][1])
2
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
Veamos por ejemplo:
# accedamos a una fila completa
print(f'Primer fila (índice 0): {matriz[0][0:]}')
print(f'Segunda fila (índice 1): {matriz[1][0:]}')
print(f'Tercera fila (índice 2): {matriz[2][0:]}')
Primer fila (índice 0): [1, 2, 3] Segunda fila (índice 1): [4, 5, 6] Tercera fila (índice 2): [7, 8, 9]
Para acceder a una columna completa no podemos realizar un código similar al anterior, pero podemos utilizar en cambio un bucle for
# accedemos a la primer columna (índice 0)
# creamos una variable que indique el número de filas en nuestra matriz
n = len(matriz)
for i in range(0,n):
print(matriz[i][0])
1 4 7
Finalmente, podemos ahora si ver a matriz
como una matriz de $3\times3$
# creamos una variable que indique el número de filas en nuestra matriz
n = len(matriz)
# creamos una variable que indique el número de columnas en nuestra matriz
m = len(matriz[0])
for i in range(0,n):
for j in range(0,m):
print(matriz[i][j], end = " ")
print()
1 2 3 4 5 6 7 8 9
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.
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:
import numpy as np
# creamos nuestra primer tupla
tupla1 = (1, 'Luis', True, np.e)
print(tupla1)
(1, 'Luis', True, 2.718281828459045)
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
lista_1 = list(tupla1)
print(lista_1)
[1, 'Luis', True, 2.718281828459045]
# podemos agregar elementos a la lista
lista_1.append("Juan")
# podemos cambiar elementos
lista_1[0] = 4
# eliminar elementos
lista_1.remove(True)
print(lista_1)
[4, 'Luis', 2.718281828459045, 'Juan']
Y después podemos regresar a la tupla original
tupla_1 = tuple(lista_1)
print(tupla1)
(1, 'Luis', True, 2.718281828459045)
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.