Skip to content

Latest commit

 

History

History
69 lines (59 loc) · 2.18 KB

tuplas.md

File metadata and controls

69 lines (59 loc) · 2.18 KB

Tuplas

Vamos ver agora um novo tipo de sequência, um outro tipo de sequência padrão na linguagem: a tupla (tuple). Uma tupla consiste em uma sequência de valores separados por vírgulas, podendo ser vista como lista em Python, com a diferença de ser imutável (assim como strings).

>>> t = 1, 2, 'python'
>>> t[0]
1
>>> t
(1, 2, 'python')
>>> # Podemos aninhar tuplas:
... u = t, (1, 2, 3, 4, 5)
>>> u
((1, 2, 'python'), (1, 2, 3, 4, 5))

Um ponto interessante é a criação de tuplas contendo 0 ou 1 itens: a sintaxe usa certos truques para acomodar estes casos. No caso das Tuplas vazias, um par de parênteses vazios é o necessário para construí-la; uma tupla unitária é construída por um único valor e uma vírgula entre parênteses (não basta colocar um único valor entre parênteses). Um pouco estranho, mas é assim que funciona:

>>> vazia = ()
>>> upla = 'hello',    # aqui está a vírgula no final
>>> len(vazia)
0
>>> len(upla)
1
>>> upla
('hello',)

As tuplas também suportam acesso aos valores através dos índices e maior parte das operações das listas, como fatiamento. Podemos utilizá-las também com o for:

>>> numeros = (1, 2, 3, 4)
>>> for num in numeros:
        print (num)

Python também permite operações chamadas de empacotamento e desempacotamento. O empacotamento acontece como no exemplo: Pintln(t = 12345, 54321, 'python!'. Os valores 12345, 54321, 'python!' são empacotados na tupla t. Também podemos criar tuplas a apartir de listas, usando a função tupla.

>>> l = [1, 2, 3]
>>> t = tuple(l)
>>> t
(1, 2, 3)

Mesmo que não possamos fazer alterações na tupla depois de criá-la, podemos concatená-las... mas saiba que isso gera novas tupla.

>>> t1 = (1, 2, 3)
>>> t2 = (4, 5, 6)
>>> t1 + t2
(1, 2, 3, 4, 5, 6)

IMPORTANTE: Tuplas podem conter objetos que podem ser alterados, mas as alterações nesses objetos não são consideradas mudanças na tupla em si, como no exemplo:

>>> tupla = ("a", ["b", "c", "d"])
>>> tupla
('a', ['b', 'c', 'd'])
>>> len(tupla)
2
>>> tupla[1]
['b', 'c', 'd']
>>> tupla[1].append("e")
>>> tupla
('a', ['b', 'c', 'd', 'e'])