Python - Tuplas
Uma tupla é uma coleção de objetos ordenados e 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 |
Indexação, divisão e matrizes
Como as tuplas são sequências, a indexação e o fracionamento funcionam para tuplas da mesma maneira que para strings. Assumindo a seguinte entrada -
L = ('spam', 'Spam', 'SPAM!')
Expressão Python | Resultados | Descrição |
---|---|---|
L [2] | 'SPAM!' | Os deslocamentos começam em zero |
L [-2] | 'Spam' | Negativo: contar da direita |
L [1:] | ['Spam', 'SPAM!'] | Fatiar busca seções |
Sem delimitadores envolventes
Qualquer conjunto de vários objetos, separados por vírgulas, escritos sem símbolos de identificação, ou seja, colchetes para listas, parênteses para tuplas, etc., padrão para tuplas, como indicado nestes exemplos curtos -
#!/usr/bin/python
print 'abc', -4.24e93, 18+6.6j, 'xyz';
x, y = 1, 2;
print "Value of x , y : ", x,y;
Quando o código acima é executado, ele produz o seguinte resultado -
abc -4.24e+93 (18+6.6j) xyz
Value of x , y : 1 2
Funções de tupla integradas
Python inclui as seguintes funções de tupla -
Sr. Não. | Função com Descrição |
---|---|
1 | cmp (tupla1, tupla2) Compara elementos de ambas as tuplas. |
2 | len (tupla) Fornece o comprimento total da tupla. |
3 | max (tupla) Retorna o item da tupla com valor máximo. |
4 | min (tupla) Retorna o item da tupla com valor mínimo. |
5 | tupla (seq) Converte uma lista em tupla. |