Las matrices en Python son una herramienta poderosa que permite organizar datos en listas de listas, facilitando su manejo y manipulación.
¿Qué es una matriz en Python?
Una matriz es una colección ordenada de datos dispuestos en filas y columnas. Se representa como una lista de listas, donde cada sublista es una fila de la matriz.
¿Cómo iterar a través de una matriz?
Para iterar a través de una matriz en Python, se puede utilizar un bucle for anidado. Cada sublista (fila) se recorre individualmente:
Ejemplo de matriz:
matrix =[[1,2,3],[4,5,6],[7,8,9]]
Iterar e imprimir cada elemento:
for row in matrix:for element in row:print(element)
¿Cómo acceder a elementos específicos en una matriz?
Para acceder a un elemento específico en una matriz, se utilizan los índices de la fila y la columna. Por ejemplo, para acceder al número 9 en la matriz anterior, se usa matrix[2][2].
Código:
print(matrix[2][2])# Salida: 9
¿Qué significa que las matrices sean mutables?
Las matrices son mutables, lo que significa que se pueden modificar, añadir o eliminar elementos después de su creación. Este es un ejemplo básico:
A diferencia de las matrices, las tuplas son inmutables, lo que significa que no se pueden modificar después de su creación. Las tuplas se utilizan para almacenar datos que no deben cambiar.
Ejemplo de tupla:
numbers =(1,2,3)
Intentar modificar una tupla genera un error:
numbers[0]=10# Genera TypeError: 'tuple' object does not support item assignment
Algo que me parecio muy interesante es que puedes incluir listas dentro de tuplas. Lo interesante de esto es que a pesar de que no puedes cambiar elementos de la tuplas si puedes cambiar los elementos que se encuentran dentro de la lista que se encuentra incluida en la tupla. Lo que de alguna manera implicaría que se estan cambiando elementos de una tupla.
Que mundo tan maravilloso el que podemos descubrir. :)
'We can include list inside tuples'numbers2 =(7,8,9,10,[11,12])print(numbers2)print(numbers2[4])print(type(numbers2[4]))# list# numbers2[4] = [20,40] -----> Gives error since they are inmutablenumbers2[4][1]=2print(numbers2)'''No podemos cambiar la tupla pero si podemos modificar las variables que se
encuentran dentro de la lista que a su vez esta incluida en la tupla'''
Excelente aporte!
Sí, es correcto, puedes añadir, eliminar o modificar datos de una lista dentro de una tupla. En sí, puedes aplicar todas estas operaciones a los tipos de datos compuestos:
Listas
Diccionarios
Conjuntos
Objetos
Con los que no es posible son con las tuplas y los tipos de datos primitivo:
Booleano
String
Entero
Flotante
Complejo
Listas Multidimensionales y Tuplas
# Lista de dos dimensiones
matriz =[[1,2,3],[4,5,6],[7,8,9]]print("Matriz:")for fila inmatriz:for elemento infila:print(elemento, end=' ')print()# Lista de tres dimensiones
tensor =[[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]]print("\nTensor:")for bloque intensor:for fila inbloque:for elemento infila:print(elemento, end=' ')print()print()# Tuplastupla1 =(1,2,3)tupla2 =(4,5,6)print("Tupla1:", tupla1)print("Tupla2:", tupla2)tupla_concatenada = tupla1 + tupla2
print("Tupla concatenada:", tupla_concatenada)tupla_repetida = tupla1 *2print("Tupla repetida:", tupla_repetida)print("¿Está 3 en la tupla1?",3in tupla1)print("Longitud de tupla1:",len(tupla1))print("Elementos de tupla1:")for elemento intupla1:print(elemento)a, b, c = tupla1
print("Desempaquetado de tupla1:", a, b, c)
Listas de Dos Dimensiones: Se crea una lista que representa una matriz, se accede a sus elementos y se iteran.
Listas de Tres Dimensiones: Se crea una lista que representa un tensor, se accede a sus elementos y se iteran.
Tuplas: Se crean tuplas, se accede a sus elementos, se muestran ejemplos de concatenación, repetición, verificación de pertenencia, longitud y desempaquetado.
Gracias Freddy por ceñirte Al tema y no perder El foco de la clase.Excelente tu aporte
Epa, dude brutall your examples, thanks for the samples
Tanto las listas como las tuplas son tipos de secuencias que pueden almacenar múltiples elementos, pero tienen diferencias clave:
Mutabilidad:
Lista: Es mutable, lo que significa que puedes modificarla (agregar, eliminar o cambiar elementos) después de crearla. Ejemplo: mi_lista = [1, 2, 3] → Puedes hacer mi_lista[0] = 10.
Tupla: Es inmutable, lo que significa que no puedes modificarla una vez creada. Ejemplo: mi_tupla = (1, 2, 3) → No puedes hacer mi_tupla[0] = 10.
Lista: Se usa cuando necesitas una secuencia de elementos que puede cambiar a lo largo del programa.
Tupla: Se usa cuando tienes una secuencia de elementos que no debería cambiar, o para mejorar el rendimiento, ya que las tuplas son más rápidas y consumen menos memoria que las listas.
¡¡¡Excelente explicación, me sirvió mucho, es breve y concisa :D!!!
Excelente, tenia esa duda de cuando usar una o la otra. Gracias
Spoiler alert!
Las funciones, que son bloques de codigo que tienen un objetivo especifico pueden retornar un valor o varios, en caso de que sean varios, estos valores se devuelven tuplas!
Siii que si , Esto es Muy Cierto vuestro >Comentario, ps asi es cuando queremos returnar mas de un numero (3) al resultado de una def Function(): en Python se usan tupla como tipo de dato para returnar mas de un solo numero fuera de una funcion ya ejecutada.
Epa absolutely right!
¿Para qué sirven o cuál es el uso práctico (profesional) de las tuplas y las listas multidimensionales?
Las listas multidimensionales sirven como matrices para organizar datos en filas y columnas. Las tuplas son inmutables y pueden usarse donde se requieren datos que no cambien.
Hola Alvaro!
Las tuplas a nivel de base de datos son buenas para almacenar datos constantes que no deben cambiar, garantizando la integridad de los datos y mejorando la eficiencia. Por ejemplo manejo de claves para diccionarios.
Para las listas multidimensionales, te será muy útil para procesamiento de imágenes o análisis de grandes volúmenes de datos. Por ejemplo si deseas que un query o dataset extraiga información de diferentes tablas para que sea muestren en un reporte y quieres que sea optima la consulta, esta lógica te ayudará a organizar la información de la mejor manera con un buen procesamiento.
Creando un Juego de Ajedrez en Python.
¡Hola a todos! 👋 Hoy quiero compartir un juego de ajedrez en Python. Aunque no es tan avanzado como los programas profesionales, es perfecto para aprender conceptos básicos de programación y entender cómo se pueden modelar juegos de lógica en código.
¿Qué hace este proyecto?
Representa un tablero de ajedrez: Usamos una lista de listas para simular el tablero 8x8, donde cada casilla contiene una pieza o está vacía.
Valida movimientos: Cada pieza tiene reglas específicas. Por ejemplo, los peones avanzan hacia adelante y las torres se mueven en línea recta.
Alterna turnos: Después de cada movimiento, el turno pasa al otro jugador.
Lleva un registro del puntaje: Basado en las piezas capturadas, el programa calcula el puntaje de cada jugador.
¿Por qué es útil para principiantes?
Este proyecto es ideal para practicar:
Funciones: Dividimos el código en partes reutilizables.
Bucles: El juego se ejecuta en un bucle infinito hasta que decides cerrarlo.
Lógica condicional: Validar movimientos requiere muchas condiciones y verificaciones.
Estructuras de datos: Usamos listas y diccionarios para organizar la información.
¿Qué sigue?
En el futuro, me gustaría añadir más reglas del ajedrez, como el enroque o el jaque mate, y quizás crear una interfaz gráfica para hacerlo más visual.
¿Te animas a probarlo?
Si quieres ver el código completo o tienes alguna pregunta, ¡no dudes en dejarme un comentario! Estoy aquí para ayudarte y compartir más detalles. ¡Vamos a programar juntos! 💻✨
interesante propuesta
la tomare
🟢 Qué son las referencias en memoria
La referencia en memoria se refiere a la manera en que Python gestiona y accede a los objetos almacenados en la memoria. En lugar de trabajar directamente con los valores, Python utiliza referencias, que son punteros que indican dónde se encuentra un objeto en la memoria (RAM).
Por ejemplo, quiero tener los valores de una lista a en b. Entonces, si b = a, b no tendrá los valores de la lista a, sino su referencia en memoria. Visualmente, se vería de la siguiente manera:
Entonces si realizas un cambio en a, también lo harás en b.
Puedes comprobar esto con el operador is, o como lo enseño la profesora de visualizar exactamente su posición en memoria.
a is b #Trueid(a)==id(b)#True
Para resolver esto puedes hacer una copia. Sin embargo, debes tener cuidado si utilizas el slicing c = a[ : ]. Este slicing hace una copia superficial.
El problema de una copia superficial, es que si tienes estructuras no primitivas anidadas, como lista de más dimensiones, entonces estas seguirán teniendo la misma referencia en memoria al momento de la copia.
a =[1,[2]]c = a[:]a is c #Falsea[1]is c[1]#True
Para resolver esto, puedes hacer una copia profunda con el módulo copy de Python y su método deepcopy.
import copy
a =[1,[2,[3]]]d = copy.deepcopy(a)a is d #Falsea[1]is d[1]#Falsea[1][1]is d[1][1]#False
Si no entiendes muy bien sobre módulos, no te preocupes, solo ten en cuenta que así debes de traer copy para utilizarlo en tu código.
Espero haberte ayudado. ¡Nunca pares de aprender! 🚀🚀
Esto es del tema anterior men pero si me sirvió jaja gracias
creo que en el ejemplo del minuto 2:40 falto abrír un corchete
Parece que ya discutimos sobre las listas de más dimensiones y las tuplas, pero puedo expandir o aclarar cualquier parte si lo deseas. Aquí tienes un resumen y algunos detalles adicionales sobre cada concepto:
### Listas de Más Dimensiones
Las listas de más dimensiones en Python son simplemente listas que contienen otras listas como elementos. Esto te permite crear estructuras como matrices o tablas, donde los datos se organizan en filas y columnas.
#### Ejemplo de Lista Bidimensional:
\# Una matriz 3x3
matriz = \[  \[1, 2, 3],  \[4, 5, 6],  \[7, 8, 9]]\# Acceder a un elemento: por ejemplo, el número 6print(matriz\[1]\[2])# Salida: 6
En este ejemplo, matriz es una lista de listas, donde cada lista interna representa una fila de la matriz.
#### Ejemplo de Lista Tridimensional:
\# Un cubo 2x2x2
cubo = \[  \[  \[1, 2],   \[3, 4]  ],  \[  \[5, 6],   \[7, 8]  ]]\# Acceder a un elemento: por ejemplo, el número 7print(cubo\[1]\[1]\[0])# Salida: 7
Aquí, cubo es una lista tridimensional, lo que significa que es una lista de listas de listas. Puedes pensar en esto como una estructura que contiene múltiples matrices.
### Tuplas
Las tuplas en Python son estructuras de datos muy similares a las listas, pero con dos diferencias clave:
1. **Inmutabilidad:** No se pueden modificar después de su creación. No puedes añadir, eliminar o cambiar elementos en una tupla.
2. **Sintaxis:** Se definen utilizando paréntesis ().
#### Ejemplo de Tupla:
tupla =(1,2,3,4,5)\# Acceder a un elemento: por ejemplo, el número 3print(tupla\[2])# Salida: 3
\# Intentar modificar la tupla generará un error
\# tupla\[2]=10# Esto provocará un TypeError
Las tuplas son útiles cuando necesitas asegurarte de que los datos no cambien durante la ejecución de un programa.
#### Tuplas Anidadas (Más Dimensiones):
Al igual que las listas, las tuplas pueden anidarse para crear estructuras de datos más complejas:
tupla\_anidada =(  (1, 2, 3),  (4, 5, 6),  (7, 8, 9))\# Acceder a un elemento: por ejemplo, el número 8print(tupla\_anidada\[2]\[1])# Salida: 8
En este caso, tupla\_anidada es una tupla de tuplas, lo que te permite trabajar con estructuras de datos que se asemejan a matrices.
### Comparación entre Listas y Tuplas
- **Mutabilidad:** Las listas son mutables (pueden cambiar), mientras que las tuplas son inmutables.
- **Velocidad:** Las tuplas son generalmente más rápidas que las listas, especialmente para operaciones de acceso.
- **Uso:** Las listas se utilizan cuando necesitas una estructura de datos que pueda cambiar. Las tuplas se utilizan cuando los datos deben permanecer constantes.
Si tienes alguna pregunta específica sobre estos temas o necesitas ejemplos adicionales, estaré encantado de ayudarte.
!Imagen de Story Pin
Características principales de las tuplas:
Inmutables: Una vez creada, no puedes cambiar, agregar ni eliminar elementos.
Ordenadas: Mantienen el orden en el que se definen.
Permiten duplicados: Pueden contener elementos repetidos.
Más rápidas: Operar con tuplas es más eficiente que con listas.
Pueden contener diferentes tipos de datos: Una misma tupla puede almacenar números, cadenas, listas, etc.
Hola, aquí algunos apuntes
Tuplas se definen con () y son inmutables.
Listas se definen con [] y son mutables.
Diccionarios se definen con {} y son mutables.
"""Siguiendo el gran aporte de Carlos Alberto:""""""Aunque no podemos modificar una tupla si podemos manipular la lista dentro de la Tubpla aplicando incluso slicing (propiedades de la LISTA) les comparto:""""""Podemos incluir LISTAS dentro de una TUPLA"""numbers2 =(7,8,9,10,[11,12])# "11" y "12" estan en una lista []print(numbers2)# Mostrará todos los elementos dentro de la tupla ()print(numbers2[4])# Mostrará la posicion 4 LISTA dentro de la tupla [1,2,3]print(type(numbers2[4]))# Mostrará el tipo de dato de la poscion 4 LISTA "class list""""Slicing""""""Se puede aplicar las propiedades de una Lista para modificarla dentro de una tupla""""""Primero cambiamos la TUPLA a LISTA para poder modificar la lista dentro de la TUPLA"""# 1. Convertir la tupla en una listatemp_list =(numbers2)print("temp list",temp_list)# 2. Modificar la lista agregando el "13"temp_list =[11,12,13]# Agregaremos el "13"print("temp list modificada",temp_list)# Se imprime con el "13""""Apliquemos insert para agregar un elemento a la LISTA dentro de la TRUPLA"""temp_list.insert(3,14)print("temp list modificada 2",temp_list)# Insertamos el "14" al final# 3. Convertir la lista de nuevo en una tuplanumbers3 =tuple(temp_list)print("Tupla Con Lista Modificada",numbers3)
Las tuplas en Python son estructuras de datos inmutables que se utilizan para almacenar colecciones de elementos. Su inmutabilidad significa que, una vez creadas, no se pueden modificar, lo cual es útil para asegurar que los datos no cambien accidentalmente. Las tuplas son ideales para almacenar datos que no deben alterarse, como coordenadas, fechas o registros constantes. Además, ocupan menos espacio en memoria que las listas, lo que las hace eficientes para ciertas aplicaciones.
que buena explicación, me ayudo a visualizar el concepto, muchas gracias.
Veo algo que no se explico en este video y me parece importante son los pasos.
Tenemos:
lista = [1,2,3,4,5,6]
Tu puedes hacer lo siguiente para devolver los indices pares de la lista
print(lista[::2] #[1,3,5]
También puedes invertir la lista utilizando el paso.
print(lista[::-1] #[6, 5, 4, 3, 2, 1]
Para cambiar una tupla a una lista en Python, simplemente debes utilizar la función list(). Por ejemplo, si tienes una tupla mi_tupla = (1, 2, 3), puedes convertirla en una lista con el siguiente código:
mi_lista =list(mi_tupla)
Ahora, mi_lista es una lista y puedes modificarla, a diferencia de la tupla, que es inmutable. Recuerda que en Python, las listas se definen con corchetes [], mientras que las tuplas se definen con paréntesis ().
Las tuplas en Python son colecciones de datos ordenadas e inmutables, es decir, una vez creadas no se pueden modificar. Se definen usando paréntesis y pueden contener elementos de diferentes tipos. Son útiles para agrupar datos que no deben cambiar, como coordenadas o fechas, y se accede a sus elementos mediante indexación, similar a las listas. A diferencia de las listas, no se pueden añadir, eliminar ni modificar elementos dentro de una tupla. Su uso es común en programación para asegurar la integridad de los datos.
Sí, tanto las listas como las tuplas en Python pueden contenerse entre sí. Puedes tener una lista que contenga tuplas como elementos, así como una tupla que contenga listas. Ambas estructuras son colecciones que permiten almacenar múltiples elementos, y su capacidad para anidarse proporciona flexibilidad en la organización de datos. Recuerda que las listas son mutables (puedes modificar sus elementos), mientras que las tuplas son inmutables (no puedes cambiar sus elementos después de crearlas).
¿Para escribir las matrices corchetes y para tuplas paréntesis o nada?
paréntesis!!!
o tambien exite el contructor tuple() para las tuplas asi como el contructor list() para las listas