Escolar Documentos
Profissional Documentos
Cultura Documentos
Em aulas anteriores, sempre que precisamos trabalhar com múltiplos dados, utilizamos as listas para armazená-
los. Porém, o Python possui outras coleções que podem ser úteis em situações diferentes. Vejamos um
pouquinho sobre duas estruturas diferentes: tuplas e dicionários.
1. Tuplas
Tuplas são estruturas bastante parecidas com listas:
Porém, elas possuem uma grande diferença: elas são imutáveis. Assim como no caso das strings, após a criação
da tupla você não pode alterar elementos individuais, adicionar elementos, remover elementos ou alterar a ordem
dos elementos.
Bom, por que usaríamos algo parecido com uma lista mas com menos recursos? Temos 3 bons motivos:
1. É um jeito de sinalizar que esses dados não deveriam ser alterados. Apesar de ser possível
redefinir a tupla (assim como já fizemos com strings), o programador que estiver mexendo no
código alheio e fizer isso estará ciente de que talvez outras partes do código precisem daqueles
dados inalterados.
3. Velocidade. Para que uma estrutura seja mutável, seu tamanho é variável, e isso envolve
algoritmos complexos para que nenhum dado seja perdido. Para acessar um certo elemento de
uma lista, todos os elementos anteriores serão percorridos. Já em uma tupla é possível um salto
calculado direto para o elemento em questão. Em programas pequenos isso é pouco perceptível,
mas ao trabalhar com bases de dados enormes e/ou realizar muitas operações complexas com os
dados, a lista pode ser um gargalo, e a tupla seria a solução.
Vejamos um pequeno exemplo mostrando as diferentes operações que podemos fazer com tupla:
# note que para acessar um elemento pelo índice ainda usamos colchete
print(tupla[4])
print('Percorrendo a tupla...')
for elemento in tupla:
print(elemento)
2. Dicionários
Quando utilizamos um dicionário (o de papel, com definições), não temos o hábito de procurar pela palavra que
está em uma determinada posição. Ao invés disso, nós buscamos pela palavra em si, e ao encontrá-la ela contém
uma definição.
A estrutura dicionário em Python é uma coleção de dados. Porém, ela não é indexada. Ao adicionarmos
elementos em um dicionário, sempre o fazemos aos pares: todo elemento terá uma chave e um valor.
A chave será uma string que utilizaremos como se fosse o índice. É como se fosse a palavra que buscamos em
um dicionário de papel.
O valor pode ser qualquer dado: um int, um float, uma str, um bool, uma lista, uma tupla, outro dicionário... Ele é
como se fosse a definição que encontramos vinculada à palavra que encontramos no dicionário de papel.
Para adicionar elementos, não precisamos de uma função pronta (como o append das listas). Basta "acessar" a
nova chave e atribuir um novo valor.
Dicionários podem ser percorridos com um for. Ao fazer isso, as chaves serão percorridas, não os valores.
Porém, à partir da chave obtém-se o valor:
O Python possui funções para obter, separadamente, todas as chaves ou todos os valores de um dicionário. Elas
são, respectivamente, keys e values. Podemos transformar o retorno dessa função em uma lista ou tupla.
Antes de criar uma chave nova em um dicionário, convém testar se ela já existe, para evitar sobrescrever um
valor. Podemos fazer isso com o operador in (sim, o mesmo que usamos no for!). Neste contexto, ele
retornará True se a chave existir e False caso não exista.
Vamos supor que no exemplo abaixo o valor de 'cursos' seja uma lista com todos os cursos que o usuário está
fazendo.
print(dicionario)
Experimente o operador in em uma lista, tupla ou string. Ele pode ser bastante útil!