Tuplas são estruturas de dados muito parecidas com as listas, mas com algumas diferenças, uma delas e mais importante, é que as tuplas são imutáveis, ou seja, após criadas não podem ter seu estado alterado e qualquer operação feita sobre elas irão gerar um novo objeto, ou seja, uma nova tupla.
Para definir uma tupla utilizamos dois parênteses ( ), ou não, rs, como assim, vamos lá:
1 2 3 4 5 6 7 8 9 10 11 12 |
>>> t = ('a', 'b') # podemos definir uma tupla desta forma. >>> t ('a', 'b') >>> t = 'a', 'b' # desta forma. >>> t ('a', 'b') >>> t = tuple(['a', 'b']) # assim, utilizando a função built-in tuple passando uma sequência qualquer. >>> t ('a', 'b') >>> t = tuple('abc') # até mesmo assim. >>> t ('a', 'b', 'c') |
Como visto no exemplo acima existem muitas formas de se definir uma tupla, mas uma delas me chama atenção, que é o segundo exemplo, onde definimos a tupla sem parênteses, assim t = ‘a’, ‘b’, porque diferente do que se pensa, não são os parênteses que definem uma tupla, mas as vírgulas, bem interessante isto, portanto o exemplo abaixo também criaria uma tupla.
1 2 3 |
>>> t = 'a', >>> t ('a',) |
Enquanto este outro exemplo não:
1 2 3 |
>>> t = ('a') >>> t 'a' # retornou uma string e não uma tupla |
Como encontrar um elemento em uma tupla:
1 2 3 |
>>> t = ('a', 'b', 'c') >>> 'b' in t True # sim, 'b' está na tupla 't' |
Fazendo Slicing em uma tupla:
1 2 3 4 5 6 7 8 9 |
>>> t = ('a', 'b', 'c') >>> t[1:3] # retorna elementos a partir do índice 1 até o índice 2 ('b', 'c') >>> t[:2] # retorna elementos a partir do índice 0 até o índice 1 ('a', 'b') >>> t[-2:] # retorna elementos a partir do índice -2(penúltimo item) até o fim. ('b', 'c') |
Tuplas tem poucos métodos, apenas dois para ser mais exato:
1 2 3 4 5 6 7 |
>>> t = ('a', 'b', 'a', 1, 2, len) >>> t.index('a') # mostra a posição da primeira ocorrência do elemento na lista 0 # o elemento 'a' está primeiramente na posição 0 >>> t.count('a') # quantidade de elementos 'a' na lista 2 >>> len(t) # len não é uma função da tupla mas sim uma função built-in do python que retorna o tamanho dela e de outras sequências. 6 |
Operações com tuplas:
1 2 3 4 5 6 7 8 9 10 |
>>> t = ('a', 'b') + ('c',) # somar duas tuplas >>> t ('a', 'b', 'c') >>> t += (3,) ('a', 'b', 'c', 3) >>> t = ('a', 'b') >>> t * 3 # equiavalente à ('a', 'b') + ('a', 'b') + ('a', 'b') ('a', 'b', 'a', 'b', 'a', 'b') |
Por que utilizar tuplas?
Tuplas são mais rápidas que listas. Se você precisa apenas definir um conjunto de valores constantes e depois percorrê-los de alguma forma, então opte por tuplas.
Deixo aqui também um pensamento sobre tuplas e listas:
“Tupla congela uma Lista e Lista descongela uma Tupla.”
Obrigado e até próxima