Compreensão de tupla em Python
A linguagem de programação Python tem uma sintaxe direta e fácil de entender. A sintaxe é tão simples que é possível escrever códigos de uma linha rapidamente com Python. Um desses recursos é a iteração ou compreensão da lista. Podemos iterar sobre uma lista e retornar uma nova lista com quadrados de elementos de lista rapidamente fazendo isto [i ** 2 for i in [1, 2, 3, 4, 5, 6, 7]]
. O mesmo se aplica aos dicionários; eles também podem ser iterados em uma única linha.
Python tem várias estruturas de dados lineares, como listas, tuplas, etc. A compreensão de lista mostrada acima não se aplica a tuplas. Isso significa que não podemos executar (i ** 2 for i in (1, 2, 3, 4, 5, 6, 7))
. Isso gerará um erro. Se isso não for possível, como executamos a compreensão da tupla em uma única linha no Python? Este artigo vai falar sobre o mesmo.
Compreensão de tupla em Python
Pode-se realizar a compreensão da tupla em Python usando a seguinte sintaxe.
x = tuple(i for i in (1, 2, 3, 4, 5, 6, 7))
print(x)
print(type(x))
y = tuple(i ** 2 for i in (1, 2, 3, 4, 5, 6, 7))
print(y)
print(type(y))
Resultado:
(1, 2, 3, 4, 5, 6, 7)
<class 'tuple'>
(1, 4, 9, 16, 25, 36, 49)
<class 'tuple'>
Python 3.5 surgiu com uma nova maneira de realizar a compreensão de tupla. Ele estava usando o processo de desempacotamento. Podemos usar *
para realizar a descompactação. Consulte o seguinte código para o mesmo.
x = (*(i for i in [1, 2, 3, 4, 5, 6, 7]),) # Notice the comma (,) at the end
print(x)
print(type(x))
Resultado:
(1, 2, 3, 4, 5, 6, 7)
<class 'tuple'>
Observe que esta sintaxe é equivalente a escrever x = tuple([i for i in [1, 2, 3, 4, 5, 6, 7]])
.
x = tuple([i for i in [1, 2, 3, 4, 5, 6, 7]])
print(x)
print(type(x))
Resultado:
(1, 2, 3, 4, 5, 6, 7)
<class 'tuple'>