logo

Tuplas anidadas en Python

Una tupla anidada es una tupla de Python que se ha colocado dentro de otra tupla. Echemos un vistazo a la siguiente tupla de 8 elementos.

 tuple = (12, 23, 36, 20, 51, 40, (200, 240, 100)) 

Este último elemento, que consta de tres elementos entre paréntesis, se conoce como tupla anidada ya que está contenido dentro de otra tupla. El nombre de la tupla principal con el valor de índice, tupla[índice], se puede usar para obtener la tupla anidada, y podemos acceder a cada elemento de la tupla anidada usando tupla[índice-1][índice-2].

Ejemplo de una tupla anidada

Código

constante java
 # Python program to create a nested tuple # Creating a nested tuple of one element only employee = ((10, 'Itika', 13000),) print(employee) # Creating a multiple-value nested tuple employee = ((10, 'Itika', 13000), (24, 'Harry', 15294), (15, 'Naill', 20001), (40, 'Peter', 16395)) print(employee) 

Producción:

 ((10, 'Itika', 13000),) ((10, 'Itika', 13000), (24, 'Harry', 15294), (15, 'Naill', 20001), (40, 'Peter', 16395)) 

Algunas operaciones de tuplas anidadas

Veremos dos operaciones necesarias de tuplas anidadas.

Concatenar tuplas con tuplas anidadas

Cuando se trabaja con tuplas, en ocasiones es necesario convertir registros separados en un grupo anidado manteniéndolos como elementos independientes. Las tuplas a menudo se agregan agregando el contenido, lo que aplana el contenedor resultante, lo cual generalmente no es deseable. Hablemos de algunos enfoques para resolver este problema.

java para tipos de bucle

Usando el operador + y ',' durante la inicialización

En esta técnica, agregamos miembros de tupla mientras lo hacemos, pero al inicializar tuplas, agregamos una coma después de cada tupla para evitar que se aplane durante la suma.

Código

 # Python program to concatenate tuples to make a nested tuple # initializing the tuples tup1 = (5, 4), tup2 = (1, 6), # printing the original tuples print('Tuple 1 : ' + str(tup1)) print('Tuple 2 : ' + str(tup2)) # Concatenating the two tuples to a nested tuple using the + operator nested = tup1 + tup2 # printing the result print('The nested tuple : ' + str(nested)) 

Producción:

 Tuple 1 : ((5, 4),) Tuple 2 : ((1, 6),) The nested tuple : ((5, 4), (1, 6)) 

Usando el operador ','

Esta tarea se puede realizar aplicando el operador ',' durante la concatenación. Puede realizar una concatenación segura.

Código

 # Python program to concatenate tuples to make a nested tuple # initializing the tuples tup1 = (5, 4) tup2 = (1, 6) # printing the original tuples print('Tuple 1 : ' + str(tup1)) print('Tuple 2 : ' + str(tup2)) # Concatenating the tuples by using the ', 'operator after tuples nested = ((tup1, ) + (tup2, )) # printing result print('The nested tuple ' + str(nested)) 

Producción:

 Tuple 1 : (5, 4) Tuple 2 : (1, 6) The nested tuple ((5, 4), (1, 6)) 

Ordenar tuplas anidadas

Podemos usar el método sorted() para ordenar una tupla determinada. De forma predeterminada, este método ordena la tupla en orden ascendente. Por ejemplo, print(sorted(empleado)) organizará la tupla 'empleado' según el número de identificación que aparece como el miembro 0 de todas las tuplas anidadas. Podemos usar una función lambda para ordenar nuestra tupla dependiendo de los otros elementos de la tupla anidada, como el nombre del empleado o el recuento, que es el primer y segundo miembro de las tuplas anidadas: print(sorted(employee, key = lambda x:x[1])).

reiniciar mysql ubuntu

En este caso, la clave le dice a la función sorted(), según qué elementos debemos ordenar la tupla. La expresión lambda: lambda x: x[1] implica que la clave, que es el elemento del índice uno, debe considerarse para la clasificación. Podemos escribir la expresión lambda como lambda x: x[2] para ordenar nuestra tupla según el recuento de palabras.

Código

 # Python program to sort the nested tuple using the sorted() function # Creating a nested tuple employee = ((10, 'Itika', 13000), (24, 'Harry', 15294), (15, 'Naill', 20001), (40, 'Peter', 16395)) # Sorting the tuple by default on the id print(sorted(employee)) # Sorting the tuple on id in reverse order print(sorted(employee, reverse = True)) # Sorting the tuple on name using lambda function print(sorted(employee, key = lambda x: x[1])) # Sorting the tuple on the name in reverse order print(sorted(employee, key = lambda x: x[1], reverse = True)) # Sorting the tuple on the word count print(sorted(employee, key = lambda x: x[2])) # Sorting the tuple on the word count in reverse print(sorted(employee, key = lambda x: x[2], reverse = True)) 

Producción:

 [(10, 'Itika', 13000), (15, 'Naill', 20001), (24, 'Harry', 15294), (40, 'Peter', 16395)] [(40, 'Peter', 16395), (24, 'Harry', 15294), (15, 'Naill', 20001), (10, 'Itika', 13000)] [(24, 'Harry', 15294), (10, 'Itika', 13000), (15, 'Naill', 20001), (40, 'Peter', 16395)] [(40, 'Peter', 16395), (15, 'Naill', 20001), (10, 'Itika', 13000), (24, 'Harry', 15294)] [(10, 'Itika', 13000), (24, 'Harry', 15294), (40, 'Peter', 16395), (15, 'Naill', 20001)] [(15, 'Naill', 20001), (40, 'Peter', 16395), (24, 'Harry', 15294), (10, 'Itika', 13000)]