logo

Tuplas aninhadas em Python

Uma tupla aninhada é uma tupla Python que foi colocada dentro de outra tupla. Vamos dar uma olhada na seguinte tupla de 8 elementos.

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

Este último elemento, que consiste em três itens entre parênteses, é conhecido como tupla aninhada, pois está contido dentro de outra tupla. O nome da tupla principal com o valor do índice, tupla[índice], pode ser usado para obter a tupla aninhada, e podemos acessar cada item da tupla aninhada usando tupla[índice-1][índice-2].

Exemplo de uma tupla aninhada

Código

estados unidos quantas cidades
 # 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) 

Saída:

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

Algumas operações de tuplas aninhadas

Veremos duas operações necessárias de tuplas aninhadas.

Concatenando Tuplas em Tuplas Aninhadas

Ao lidar com tuplas, ocasionalmente é necessário transformar registros separados em um grupo aninhado, mantendo-os como elementos independentes. Freqüentemente, as tuplas são adicionadas adicionando o conteúdo, o que nivela o contêiner resultante, o que normalmente é indesejável. Vamos falar sobre algumas abordagens para resolver esse problema.

java converte char em int

Usando o operador + e ',' durante a inicialização

Nesta técnica, adicionamos membros de tupla como fazemos, mas ao inicializar tuplas, acrescentamos uma vírgula após cada tupla para evitar achatamento durante a adição.

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)) 

Saída:

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

Usando o operador ','

Esta tarefa pode ser executada aplicando o operador ',' durante a concatenação. Ele pode realizar concatenação 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)) 

Saída:

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

Classificando tuplas aninhadas

Podemos usar o método sorted() para classificar uma determinada tupla. Por padrão, este método classifica a tupla em ordem crescente. Por exemplo, print(sorted(employee)) organizará a tupla 'employee' de acordo com o número de identificação que aparece como o 0º membro de todas as tuplas aninhadas. Podemos usar uma função lambda para classificar nossa tupla dependendo dos outros elementos da tupla aninhada, como o nome do funcionário ou a contagem, que é o primeiro e o segundo membro das tuplas aninhadas: print(sorted(employee, key = lambda x:x[1])).

formulário completo do cdr

Neste caso, a chave informa à função sorted(), de acordo com quais elementos devemos ordenar a tupla. A expressão lambda: lambda x: x[1] implica que a chave, que é o elemento do índice um, deve ser considerada para classificação. Podemos escrever a expressão lambda como lambda x: x[2] para classificar nossa tupla de acordo com a contagem de palavras.

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)) 

Saída:

 [(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)]