Nessa aula estudaremos os dicionários, uma estrutura simples de ser usada que nos proporciona uma forma de programar rápida e simples, produzindo um código legível e fácil de ser entendido. |
INTRODUÇÃO
Já estudamos as listas, como também, aprendemos diversas formas para manipula-las. Agora, nós daremos início ao estudo dos dicionários, uma das estruturas mais utilizadas internamente pelas bibliotecas do Python. Ou seja, muito das implementações que utilizamos, foram construídas, fazendo uso de dicionários. E também, raras são as vezes que desenvolvermos um programa em sem a utilizarmos um dicionário, até porque, o mesmo representa da melhor maneira a estrutura chave-valor.
O QUE É UM DICIONÁRIO?
Um dicionário é uma lista especializada onde cada valor está diretamente relacionado a uma chave.
Até agora, nós estávamos utilizando estruturas como listas e tuplas. Nestas, nós temos que cada elemento é associado a um número inteiro não negativo, então, podemos dizer que a estrutura lista do Python é, em sua definição mais primitiva, um dicionário. Onde a chave é o número inteiro, e o valor, o objeto que estamos associando a este número.
A grande diferença dos dicionário para as listas, é que com os dicionários, é nossa responsabilidade a construção e o gerenciamento do índice e também, nós podemos utilizar como índice qualquer objeto não mutável.
Ou seja, nós podemos definir que cada item terá uma cadeia de caracteres vinculado, logo, para acessar este item, deve-se informar qual a sequência de caracteres desejado. Também podemos associar um número como índice ou então, nós podemos definir que alguns elementos terão vinculados um número e outros uma string ou mesmo, uma tupla.
Nós temos uma estrutura chave-valor, e cada chave sempre estará relacionada a um valor qualquer. Logo, podemos dizer que um dicionário pode funcionar como uma lista, mas uma lista não consegue trabalhar como um dicionário.
A estrutura de dicionário é uma estrutura abstrata, assim, podemos estende-la e implementarmos uma lista simples, uma tupla ou então, a estrutura de chave-valor que desejarmos.
>>> x = {"aaa":1, "bbb":2, "ccc":3}
>>> x
{'bbb': 2, 'aaa': 1, 'ccc': 3}
No exemplo acima, associamos um conjunto de caractere a um determinado objeto numérico. Agora, para recuperarmos dos objetos numéricos, basta informarmos a respectiva cadeia de caracteres, por exemplo:
>>> x["aaa"]
1
>>> x["bbb"]
2
O que temos é que a chave está vinculado a um valor único dentro da estrutura do dicionário. Caso uma chave não contida no dicionário seja passada, será retornado um erro, por exemplo:
>>> x["ddd"]
Nós adicionamos uma série de itens numa determinada ordem, porém, se nós iterarmos o nosso dicionário e imprimirmos os seus elementos, não necessáriamente os itens serão impressos numa ordem pre-estabelecida. Talvez, quando estivermos trabalhando com um pequeno dicionário a recuperação de elementos ocorra num determinada ordem, porém, não se pode confiar que os elementos do dicionário estarão ordenados.
CHAVES INVÁLIDAS
Em um dicionário, nós podemos definir como chave de um elemento, qualquer estrutura imutável, como exemplo, uma tupla ou então, uma string. Porém, se nós tentarmos atribuir como chave uma lista, não será possível e isso acontece, porque internamente, um dicionário utiliza um valor que é obtido através de uma chave. Logo, se nós tivermos uma estrutura mutável, o valor que o dicionário utilizou como índice terá sido mudado e então, o armazenamento chave-valor não mais funcionará.
CONJUNTOS DE ELEMENTOS COMO CHAVE
Em Python, o trabalho e manejo de listas é uma tarefa relativamente simples. Um dicionário, por exemplo, pode ter um elemento que possui uma chave mapeada através de um conjunto de objetos. Assim, nós conseguimos, por exemplo, montar arranjos, onde um grupo de elementos está mapeado a um objetos ou mesmo, um conjunto de objetos. Assim, temos que a chave de cada elemento deve ser um objeto imutável, porém, o valor pode ser qualquer objeto, indiferente do seu funcionamento.
>>> dic = {("a", "b", "c"):1, ("d", "e", "f"):2, ("g", "h", "i"):3}
>>> dic[("d", "e", "f")]
2
Acima, nós temos um exemplo onde um número está associado a um conjunto de caracteres. Devido ao fato de que uma tupla é um objeto imutável, ou seja, após cria-la não mais é possível adicionar, alterar ou remover elementos, logo, nós podemos associar um objetos a um conjunto de elementos.
É importante observar, que uma tupla pode conter os mesmos elementos e ainda assim ser diferente. Isso porque, a disposição dos elementos numa lista ou numa tupla a faz diferente de outra, mesmo que ambas contenham os mesmos elemento. Por exemplo:
premios = {
(44,12,07,08,50,23,47):"Carro",
(24,55,02,48,40,33,41):"Casa"
}
VEJA TAMBÉM
Tags curso, python, dicionário
Comentários
comments powered by Disqus