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 |