NOME DURAÇÃO
Curso de Python
Primeira Aula de Python
Características do Python
Recursos do Python
IDLE - Modo Interativo do Python
Instalando o PyCharm no Windows
Primeiro programa em Python
Comentários em Python
Indentação do código Python
Variáveis em Python
Características das Variáveis em Python
Nomenclatura das Variáveis em Python
Tipos de dados em Python
Variáveis do tipo Ponto Flutuante do Python
Entrada de Dados em Python
Operadores Aritméticos do Python
Módulo da Divisão em Python
Potenciação e Radiciação em Python
Operadores Relacionais do Python
Tomada de Decisão em Python
Estrutura if e else em Python
Depurando código Python
Operadores Relacionais Compostos do Python
Operadores Relacionais na Prática em Python
Operadores Lógicos em Python
Blocos de Instrução em Python
Blocos de Instrução em Python (Parte II)
Blocos de Instrução Python na Prática
Escopo de Nomes em Python
Estrutura de Atribuição Simples do Python
Atribuição Múltipla em Python
Operadores de Atribuição Compostos do Python
Atribuição Condicional em Python
Iteração em Python
Laços de Repetição do Python
Estrutura de repetição while em Python
A instrução for em Python
A função range() do Python
O for loop e a função range() do Python
Instrução break do Python
Instrução continue em Python
Estruturas de Dados Lista em Python
Lista, Pilha, Array, Set em Python
A classe list do Python
Classe list - Conceitos Avançados do Python
Funções da Classe list do Python
Iteração de Listas em Python
Fatiando Listas em Python
Incluindo, Alterando e Excluindo Elementos no Python
Ordenamento de Listas em Python
Quantidade de Itens em Python
Tuplas em Python
Operadores in e not in do Python
Operadores and, or e in do Python
Exemplo com Operador in em Python
Introdução às Strings em Python
Fatiando Strings com Python
Funções das Strings no Python
Comparação de Strings em Python
Iterando Strings em Python
Introdução aos Dicionários do Python
Dicionários na Prática com Python
Funções dos Dicionários no Python
Introdução às Funções em Python
Parâmetros de Função em Python
Parâmetros default em Python
Argumento de Função Nomeado vs Posicional em Python
Retornando Valores pelas Funções em Python

Nesta aula estudaremos as Tuplas, isto é, uma Estrutura de Dados semelhante as Listas porém imutável.

DEFINIÇÃO DE TUPLA

Tupla é uma Lista imutável. O que diferencia a Estrutura de Dados Lista da Estrutura de Dados Tupla é que a primeira pode ter elementos adicionados a qualquer momento, enquanto que a segunda estrutura, após definida, não permite a adição ou remoção de elementos.

Devemos pensar num primeiro momento, que a Tupla é uma lista que restringe a adição, alteração, remoção e o ordenamento do elementos. No entanto, pensar numa tupla como sendo somente uma lista imutável não está totalmente correto.

Tuplas possuem muitas características das listas Listas, porém, possui um propósito diferente e não raramente levamos um tempo para conseguir realmente perceber a sutil diferença.

Segundo Phillip J. Eby, contribuidor de diversos projetos do Python e criador da ferramenta Setuptools, numa discussão sobre a remoção das tuplas para a versão 3x do Python, trouxe uma argumentação bastante interessante, diz ele:

É um equívoco pensar nas tuplas como listas constantes. As listas são destinadas a serem sequências homogêneas, enquanto que os Tuplas são estruturas de dados heterogêneas. Phillip J. Eby

Em outras palavras, ele disse que em uma lista, as informações, geralmente são de um mesmo tipo, por exemplo, uma lista de e-mails. Enquanto que numa tupla, os elementos são de tipos distintos, por exemplo, uma Tupla que contém o dia, o dia da semana, o mês e o ano.

t = ["10", "segunda-feita", "Fevereiro", 2022]

O que estudamos até o momento a respeito de listas, pode ser utilizado para manipular e controlar Tuplas, salvo a alteração da lista ou de seus elementos.

>>> t = ("x", "y", 10, 20, "c")
>>> t
("x", "y", 10, 20, "c")
>>> t[0]
"x"
>>> t[-1]
"c"
>>> t[1:3]
('y', 10, 20)
  1. Uma Tupla é definida da mesma forma que uma lista, o que as diferencias, são os caracteres que as delimitam. Uma Lista, tem seus elementos delimitados por colchetes, enquanto que a Tupla, tem seus elementos delimitados por parêntesis.
  2. A ordem dos elementos numa Tupla será a ordem na qual estes foram definidos, ou seja, não é possível ordenar em tempo de execução os elementos.
  3. O primeiro elemento de uma Tupla também possui índice igual a 0 e o último índice igual a -1. Assim o acesso a elementos, bem como o fatiamentos funciona da mesma forma como já estudado no fatiamento de Listas.

NOTAÇÃO

É comum diferenciarmos a lista da tupla pelo seus caracteres delimitadores. Por exemplo, os elementos de uma lista são delimitados por colchetes, enquanto que os elementos de uma tupla por parêntesis.

Distinguir as estruturas pelo seus caracteres delimitadores não é um erro, porém, na documentação oficial do Python consta que uma tupla é declarada pela utilização do operador vírgula, e que é utilizado para separar os elementos.

A única exceção é na declaração de tuplas vazias. No código a seguir iremos declarar algumas tuplas e adicionaremos comentários em cima de cada declaração.

#tupla declarada sem o uso de parentesis
t1 = 1, 2, 3
#tupla declarada com o uso de parentesis
t2 = (1, 2, 3)

#tupla com um único elemento
t3 = 1,

#tupla vazia
t4 = ()

Inicialmente declaramos as variáveis t1 e t2 e associamos a cada uma tupla contendo 3 elementos. Ambas declarações são identicas e possuem um mesmo resultado.

Em seguida declaramos uma terceira tupla t3 que possui um único elemento. Observe que a declaração é finalizada com uma vírgula! É dessa forma que declaramos tuplas com um único elemento.

Por fim, declaramos uma tupla vazia t4 e nesta situação foram os parentesis que determinam o tipo do objeto declarado. Essa é a única situação onde é obrigatório a utilização dos parentesis na declaração da tupla.

Vejamos agora o que a documentação do Python trás sobre a declaração de tuplas:

Observe que é a vírgula que é realmente define uma tupla, não os parênteses. Os parênteses são opcionais, exceto no caso da tupla vazia, ou quando são necessários para evitar a ambigüidade sintática. Por exemplo, :code:`f(a, b, c)` é uma chamada de função com três argumentos, enquanto :code:`f((a, b, c))` é uma chamada de função com uma tupla-3 como único argumento.

O TIPLO tuple

No código a seguir, vamos obter o tipo reconhecido pelo Python.

>>> type((1,2,3))
<class 'tuple'>

>>> x = 1,2,3
>>> type(x)
<class 'tuple'>

>>> y = "a", 1, True
>>> type(y)
<class 'tuple'>

>>> z = (True, True, False)
>>> type(z)
<class 'tuple'>

No código acima, definimos algumas estruturas e logo em seguida, verificamos o tipo reconhecido pelo Python, como podemos ver, em todos os casos, a estrutura reconhecida foi sendo a Tupla.

CONCLUSÃO RÁPIDA DAS TUPLAS

Todas as ideias estudadas até o momento em relação as listas, servem também, para a estrutura Tupla, com a ressalva de que não é possível adicionar ou remover novos elementos durante o tempo de execução.

Porém, a Iteração, junção e a ideia de elementos como sendo Objetos, são os mesmos e possuem o mesmo funcionamento.

DECLARAÇÃO DE TUPLAS

Uma Tupla é uma estrutura que contém nenhum ou vários elementos. Os elementos de uma Tupla devem ser separados por vírgulas e podem ser delimitados por parêntesis. Uma sequência qualquer, onde os elementos estão separados por vírgula é reconhecido pela linguagem como sendo um tupla, mesmo que os elementos não estejam delimitados por parentesis.

As tuplas são declaradas de maneira bastante semelhante as Listas, onde os elementos são separados pelo uso de vírgulas e ambas as estruturas são delimitadas por uma simbologia e esta acaba por definir a estrutura.

No código abaixo, definiremos uma Tupla contendo alguns dias da semana.

>>> dias_da_semana = ("domingo", "segunda", "terça", "quarta", )
>>> dias_da_semana
("domingo", "segunda", "terça", "quarta")

Podemos rapidamente perceber a enorme semelhança entre a definições de Listas e Tuplas.

É possível declarar as Tuplas de maneira implícita e explicita, como temos no código a seguir:

#declaração explicita
>>> t1 = tuple("abc")
>>> t1
('a', 'b', 'c')

#declaração implicita
>>> t2 = ("a", "b", "c")
>>> t2
('a', 'b', 'c')

#declaração implicita igual a declaração anterior
>>> t3 = "a", "b", "c"
>>> t3
('a', 'b', 'c')

No código acima, declaramos inicialmente uma Tupla com uso da notação explicita, isto é, passamos um String como parâmetro na inicialização da estrutura tuple. Em seguida, implementamos 2 códigos que possuem o mesmo resultado, utilizando assim, as 2 notação de tuple implicitadas da linguagem Python.

VEJA TAMBÉM



Tags curso, python

Comentários

comments powered by Disqus