Uso de Tuplas en Python

PythonBeginner
Practicar Ahora

Introducción

En este laboratorio, obtendrá una comprensión exhaustiva de las tuplas (tuples) en Python. Aprenderá a crear tuplas, acceder a sus elementos mediante indexación y segmentación (slicing), y explorará su naturaleza inmutable. También practicará el uso de operadores de tuplas, el desempaquetado (unpacking) y las funciones integradas (built-in functions) comunes para trabajar eficientemente con datos de tuplas.

Este es un Guided Lab, que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel principiante con una tasa de finalización del 100%. Ha recibido una tasa de reseñas positivas del 100% por parte de los estudiantes.

Crear y Acceder a Tuplas

En este paso, aprenderá a crear tuplas y a acceder a sus elementos. Las tuplas son colecciones ordenadas e inmutables de elementos, lo que significa que su contenido no se puede cambiar después de la creación.

Primero, localice el explorador de archivos en el lado izquierdo del WebIDE. Busque y abra el archivo llamado tuple_basics.py. Escribiremos nuestro código en este archivo.

Comencemos creando algunos tipos diferentes de tuplas. Agregue el siguiente código a tuple_basics.py:

## Create an empty tuple
empty_tuple = ()
print("Empty tuple:", empty_tuple)
print("Type of empty_tuple:", type(empty_tuple))

## Create a tuple with a single element (note the trailing comma)
single_element_tuple = (50,)
print("\nSingle element tuple:", single_element_tuple)
print("Type of single_element_tuple:", type(single_element_tuple))

## Create a tuple with multiple elements
fruits = ("apple", "banana", "cherry")
print("\nFruits tuple:", fruits)

## Create a tuple from a list using the tuple() constructor
numbers_list = [1, 2, 3, 4]
numbers_tuple = tuple(numbers_list)
print("\nTuple from list:", numbers_tuple)

Después de agregar el código, guarde el archivo (puede usar el atajo Ctrl+S). Luego, abra la terminal en la parte inferior del WebIDE y ejecute el script con el siguiente comando:

python tuple_basics.py

Debería ver la siguiente salida, que confirma la creación y los tipos de sus tuplas:

Empty tuple: ()
Type of empty_tuple: <class 'tuple'>

Single element tuple: (50,)
Type of single_element_tuple: <class 'tuple'>

Fruits tuple: ('apple', 'banana', 'cherry')

Tuple from list: (1, 2, 3, 4)

Ahora, aprendamos cómo acceder a los elementos dentro de una tupla. Puede usar la indexación (comenzando desde 0) para obtener un solo elemento y la segmentación (slicing) para obtener una sub-secuencia de elementos.

Agregue el siguiente código al final de su archivo tuple_basics.py:

## Define a sample tuple for accessing elements
my_tuple = ('p', 'y', 't', 'h', 'o', 'n')
print("\nOriginal tuple:", my_tuple)

## Access elements using indexing
print("First element (index 0):", my_tuple[0])
print("Last element (index -1):", my_tuple[-1])

## Access elements using slicing
print("Elements from index 1 to 3:", my_tuple[1:4])
print("Elements from index 2 to the end:", my_tuple[2:])
print("Reverse the tuple:", my_tuple[::-1])

Guarde el archivo nuevamente y ejecute el script desde la terminal:

python tuple_basics.py

La salida completa incluirá ahora los resultados de acceder a los elementos de la tupla:

Empty tuple: ()
Type of empty_tuple: <class 'tuple'>

Single element tuple: (50,)
Type of single_element_tuple: <class 'tuple'>

Fruits tuple: ('apple', 'banana', 'cherry')

Tuple from list: (1, 2, 3, 4)

Original tuple: ('p', 'y', 't', 'h', 'o', 'n')
First element (index 0): p
Last element (index -1): n
Elements from index 1 to 3: ('y', 't', 'h')
Elements from index 2 to the end: ('t', 'h', 'o', 'n')
Reverse the tuple: ('n', 'o', 'h', 't', 'y', 'p')

Ahora ha creado tuplas con éxito y accedido a sus elementos.

Comprender la Inmutabilidad de las Tuplas

Una característica clave de las tuplas es su inmutabilidad. Esto significa que una vez que se crea una tupla, no se pueden cambiar, agregar o eliminar sus elementos. En este paso, verá lo que sucede cuando intenta modificar una tupla y aprenderá la forma correcta de lograr una "modificación" creando una nueva tupla.

Abra el archivo tuple_modification.py desde el explorador de archivos.

Primero, intentemos cambiar un elemento en una tupla directamente. Agregue el siguiente código a tuple_modification.py. La línea que intenta la modificación está comentada.

my_tuple = ('a', 'b', 'c', 'd', 'e')
print("Original tuple:", my_tuple)

## The following line will cause a TypeError because tuples are immutable.
## You can uncomment it to see the error for yourself.
## my_tuple[0] = 'f'

Si ejecutara el código con la penúltima línea sin comentar, Python se detendría y mostraría un TypeError: 'tuple' object does not support item assignment.

Dado que no podemos modificar una tupla en su lugar (in place), la solución es crear una nueva tupla con los cambios deseados. Podemos hacer esto usando segmentación (slicing) y concatenación (+).

Agregue el siguiente código al final de tuple_modification.py para ver cómo "reemplazar" un elemento:

## "Modify" a tuple by creating a new one
## Concatenate a new single-element tuple ('f',) with a slice of the original tuple
modified_tuple = ('f',) + my_tuple[1:]

print("New 'modified' tuple:", modified_tuple)
print("Original tuple is unchanged:", my_tuple)

De manera similar, puede "eliminar" un elemento creando una nueva tupla que lo excluya. Agregue este código a su archivo:

## "Delete" an element by creating a new tuple
## Concatenate the slice before the element with the slice after the element
tuple_after_deletion = my_tuple[:2] + my_tuple[3:] ## Excludes element at index 2 ('c')

print("\nNew tuple after 'deletion':", tuple_after_deletion)

Guarde el archivo y ejecútelo desde la terminal:

python tuple_modification.py

La salida demostrará que hemos creado nuevas tuplas mientras que la original permanece intacta:

Original tuple: ('a', 'b', 'c', 'd', 'e')
New 'modified' tuple: ('f', 'b', 'c', 'd', 'e')
Original tuple is unchanged: ('a', 'b', 'c', 'd', 'e')

New tuple after 'deletion': ('a', 'b', 'd', 'e')

Este paso resalta la naturaleza inmutable de las tuplas y la práctica estándar para sortear esta limitación.

Usar Operadores de Tuplas y Desempaquetado (Unpacking)

Python proporciona varios operadores útiles para trabajar con tuplas. También aprenderá sobre el desempaquetado de tuplas (tuple unpacking), una característica potente para asignar elementos de una tupla a variables.

Abra el archivo tuple_operators.py desde el explorador de archivos.

Exploremos los operadores de concatenación (+), repetición (*) y pertenencia (in). Agregue el siguiente código a tuple_operators.py:

tuple1 = (1, 2, 3)
tuple2 = ('a', 'b', 'c')

## Concatenation (+)
concatenated_tuple = tuple1 + tuple2
print("Concatenated:", concatenated_tuple)

## Repetition (*)
repeated_tuple = tuple1 * 3
print("Repeated:", repeated_tuple)

## Membership (in)
is_present = 'b' in tuple2
print("\nIs 'b' in tuple2?", is_present)

is_absent = 5 in tuple1
print("Is 5 in tuple1?", is_absent)

Guarde el archivo y ejecútelo desde la terminal:

python tuple_operators.py

Verá los resultados de estas operaciones:

Concatenated: (1, 2, 3, 'a', 'b', 'c')
Repeated: (1, 2, 3, 1, 2, 3, 1, 2, 3)

Is 'b' in tuple2? True
Is 5 in tuple1? False

A continuación, exploraremos el desempaquetado de tuplas (tuple unpacking). Esto le permite asignar los elementos de una tupla a múltiples variables en una sola línea legible. El número de variables debe coincidir con el número de elementos en la tupla.

Agregue el siguiente código al final de tuple_operators.py:

## Tuple unpacking
person_info = ("Alice", 30, "Engineer")
name, age, profession = person_info

print("\nOriginal info tuple:", person_info)
print("Unpacked Name:", name)
print("Unpacked Age:", age)
print("Unpacked Profession:", profession)

Guarde el archivo nuevamente y ejecute el script:

python tuple_operators.py

La salida ahora incluirá las variables desempaquetadas:

Concatenated: (1, 2, 3, 'a', 'b', 'c')
Repeated: (1, 2, 3, 1, 2, 3, 1, 2, 3)

Is 'b' in tuple2? True
Is 5 in tuple1? False

Original info tuple: ('Alice', 30, 'Engineer')
Unpacked Name: Alice
Unpacked Age: 30
Unpacked Profession: Engineer

El desempaquetado de tuplas es especialmente útil para funciones que devuelven múltiples valores, ya que a menudo los devuelven en una tupla.

Aplicar Funciones y Métodos Integrados (Built-in)

En este paso final, aprenderá a utilizar funciones y métodos integrados comunes que operan en tuplas. Las tuplas tienen dos métodos principales, count() e index(), y se pueden usar con muchas funciones de propósito general.

Abra el archivo tuple_functions.py desde el explorador de archivos.

Comencemos con los métodos de la tupla. count() devuelve el número de veces que aparece un elemento, e index() devuelve el índice de la primera aparición de un elemento.

Agregue el siguiente código a tuple_functions.py:

my_tuple = (1, 5, 2, 8, 5, 3, 5, 9)
print("Tuple:", my_tuple)

## count() method
count_of_5 = my_tuple.count(5)
print("Count of 5:", count_of_5)

## index() method
index_of_8 = my_tuple.index(8)
print("Index of 8:", index_of_8)

Ahora, usemos algunas funciones integradas que son muy útiles con tuplas, como len(), max(), min(), sum() y sorted().

Agregue el siguiente código al final de tuple_functions.py:

number_tuple = (10, 5, 20, 15, 30, 5)
print("\nNumber tuple:", number_tuple)

## len() function
print("Length:", len(number_tuple))

## max() and min() functions
print("Maximum value:", max(number_tuple))
print("Minimum value:", min(number_tuple))

## sum() function (for numeric tuples)
print("Sum of elements:", sum(number_tuple))

## sorted() function (returns a new sorted list)
sorted_list = sorted(number_tuple)
print("Sorted list from tuple:", sorted_list)

Tenga en cuenta que la función sorted() devuelve una nueva lista, no una tupla. Si necesita una tupla ordenada, puede convertir el resultado de nuevo usando tuple(sorted_list).

Guarde el archivo y ejecútelo desde la terminal:

python tuple_functions.py

Su salida debería verse así:

Tuple: (1, 5, 2, 8, 5, 3, 5, 9)
Count of 5: 3
Index of 8: 3

Number tuple: (10, 5, 20, 15, 30, 5)
Length: 6
Maximum value: 30
Minimum value: 5
Sum of elements: 85
Sorted list from tuple: [5, 5, 10, 15, 20, 30]

Ahora ha aprendido a utilizar métodos y funciones importantes para inspeccionar y analizar tuplas.

Resumen

En este laboratorio, ha adquirido una base sólida en el uso de tuplas de Python. Aprendió a crear tuplas de varias maneras y cómo acceder a sus elementos utilizando indexación y segmentación (slicing). Exploró el concepto central de la inmutabilidad de las tuplas y practicó la creación de nuevas tuplas para realizar "modificaciones". También se familiarizó con los operadores de tuplas comunes como + y *, la conveniencia del desempaquetado de tuplas (tuple unpacking) y la utilidad de los métodos integrados (count(), index()) y las funciones (len(), max(), sorted()) para trabajar con datos de tuplas.