7. Tuplas

  • O que são tuplas
    • Em python, tuplas são estruturas muito semelhante às listas, no entanto, ao contrário de listas, tuplas são imutáveis.
  • Imutabilidade
    • As tuplas são imutáveis, o que significa que não podem ser alteradas.
  • Onde e quando Usar
    • Você usaria tuplas para apresentar dados que não devem ser alterados, como os dias da semana ou a datas de um calendário.

7.1. Criando uma tupla

Observe que ao criar uma tupla usamos os Parênteses ( )

# Criando uma tupla
tupla1 = ("Geografia", 23, "Elefantes")
# Imprimindo a tupla
tupla1
('Geografia', 23, 'Elefantes')

7.2. Adição

  • Como são imutáveis as tuplas não suportam adição/remoção de elementos.
# Tuplas não suportam append()
tupla1.append("Chocolate")   
---------------------------------------------------------------------------

AttributeError                            Traceback (most recent call last)

<ipython-input-3-cb90e5e5a1a0> in <module>
      1 # Tuplas não suportam append()
----> 2 tupla1.append("Chocolate")


AttributeError: 'tuple' object has no attribute 'append'

7.3. Remoção

  • Tuplas não suportam delete de um item específico
del tupla1["Gatos"]  
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-9-24facd06bb21> in <module>()
      1 # Tuplas não suportam delete de um item específico
----> 2 del tupla1["Gatos"]


TypeError: 'tuple' object does not support item deletion
  • Tuplas podem ter um único item
tupla1 = ("Chocolate")
tupla1
'Chocolate'
tupla1 = ("Geografia", 23, "Elefantes")
tupla1[0]
'Geografia'
  • Verificando o tamanho da tupla
len(tupla1)
3
  • Slicing, da mesma forma que se faz com listas
tupla1[1:]
(23, 'Elefantes')
tupla1.index('Elefantes')
2
  • Tuplas não suportam atribuição de item
tupla1[1] = 21
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-11-59bcc25f7f2b> in <module>
      1 # Tuplas não suportam atribuição de item
----> 2 tupla1[1] = 21


TypeError: 'tuple' object does not support item assignment
# Deletando a tupla
del tupla1
tupla1
---------------------------------------------------------------------------

NameError                                 Traceback (most recent call last)

<ipython-input-13-9c021f243716> in <module>
----> 1 tupla1


NameError: name 'tupla1' is not defined
# Criando uma tupla
t2 = ('A', 'B', 'C')
t2
('A', 'B', 'C')
# Tuplas não suportam atribuição de item
t2[0] = 'D'
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-16-f90994f4060e> in <module>
      1 # Tuplas não suportam atribuição de item
----> 2 t2[0] = 'D'


TypeError: 'tuple' object does not support item assignment
# Usando a função list() para converter uma tupla para lista
lista_t2 = list(t2)
lista_t2
['A', 'B', 'C']
lista_t2.append('D')
# Usando a função tuple() para converter uma lista para tupla
t2 = tuple(lista_t2)
t2
('A', 'B', 'C', 'D')