Python - Tuplas

Uma tupla é uma sequência de objetos Python imutáveis. Tuplas são sequências, assim como listas. As diferenças entre tuplas e listas são: as tuplas não podem ser alteradas, ao contrário das listas e as tuplas usam parênteses, enquanto as listas usam colchetes.

Criar uma tupla é tão simples quanto colocar diferentes valores separados por vírgula. Opcionalmente, você também pode colocar esses valores separados por vírgula entre parênteses. Por exemplo -

tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";

A tupla vazia é escrita como dois parênteses contendo nada -

tup1 = ();

Para escrever uma tupla contendo um único valor, você deve incluir uma vírgula, mesmo que haja apenas um valor -

tup1 = (50,);

Como os índices de string, os índices de tupla começam em 0 e podem ser fatiados, concatenados e assim por diante.

Acessando valores em tuplas

Para acessar os valores na tupla, use os colchetes para dividir junto com o índice ou índices para obter o valor disponível naquele índice. Por exemplo -

#!/usr/bin/python

tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5, 6, 7 );
print "tup1[0]: ", tup1[0];
print "tup2[1:5]: ", tup2[1:5];

Quando o código acima é executado, ele produz o seguinte resultado -

tup1[0]:  physics
tup2[1:5]:  [2, 3, 4, 5]

Atualizando tuplas

As tuplas são imutáveis, o que significa que você não pode atualizar ou alterar os valores dos elementos da tupla. Você pode pegar partes de tuplas existentes para criar novas tuplas, como o exemplo a seguir demonstra -

#!/usr/bin/python

tup1 = (12, 34.56);
tup2 = ('abc', 'xyz');

# Following action is not valid for tuples
# tup1[0] = 100;

# So let's create a new tuple as follows
tup3 = tup1 + tup2;
print tup3;

Quando o código acima é executado, ele produz o seguinte resultado -

(12, 34.56, 'abc', 'xyz')

Excluir elementos de tupla

A remoção de elementos individuais da tupla não é possível. É claro que não há nada de errado em juntar outra tupla com os elementos indesejáveis ​​descartados.

Para remover explicitamente uma tupla inteira, basta usar o deldeclaração. Por exemplo -

#!/usr/bin/python

tup = ('physics', 'chemistry', 1997, 2000);
print tup;
del tup;
print "After deleting tup : ";
print tup;

Isso produz o seguinte resultado. Observe uma exceção levantada, porque apósdel tup tupla não existe mais -

('physics', 'chemistry', 1997, 2000)
After deleting tup :
Traceback (most recent call last):
   File "test.py", line 9, in <module>
      print tup;
NameError: name 'tup' is not defined

Operações básicas de tuplas

As tuplas respondem aos operadores + e * como strings; eles significam concatenação e repetição aqui também, exceto que o resultado é uma nova tupla, não uma string.

Na verdade, as tuplas respondem a todas as operações gerais de sequência que usamos em strings no capítulo anterior -

Expressão Python Resultados Descrição
len ((1, 2, 3)) 3 comprimento
(1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) Concatenação
('Olá!',) * 4 ('Olá!', 'Olá!', 'Olá!', 'Olá!') Repetição
3 in (1, 2, 3) Verdadeiro Filiação
para x em (1, 2, 3): imprimir x, 1 2 3 Iteração