Enviar um café pro programador

Dicionários em Python - O que é, Como usar e Para que serve

Neste tutorial de nosso Curso de Python, vamos falar do último tipo de dado de sequência: os dicionários.

Leia também:

Dicionário - O que é ?


Esse tipo de dado é, sem dúvida, o mais poderoso e flexível, dentre as sequências.

Nas listas e tuplas, tínhamos uma coisa em comum: os items eram ordenados, começavam no índice 0, e iam de um em um. Ou seja, são tipos de dados ordenados.

Já os dicionários são do tipo desordenados, pois não são numerados por índice.
Ao invés de índice, temos chaves.

E que chaves são essas? O que você quiser.
As chaves são índices também, mas pode ser qualquer número que você quiser ou uma string, por exemplo.

Eles não estão armazenados de uma maneira lógica e sequencial, estão propositalmente 'espalhados'.




Dicionário - Como declarar e Usar

Vamos definir um dicionário chamado meuCachorro.
Se nas listas usamos colchetes [ ], nas tuplas usamos parêntesis ( ), nos dicionários iremos usar chaves { }, veja:

meuCachorro={ 'raca': 'bulldog', 'idade' : 3, 'nome' : 'Florisbull'}

As chaves são: 'raca', 'idade' e 'nome'.
Elas tem os valores: 'bulldog', 3 e 'Florisbull', respectivamente.

Dicionário de uma maneira mais organizada:

meuCachorro={ 'raca': 'bulldog',
              'idade' : 3,
              'nome' : 'Florisbull'}

Assim, a raça do cachorro está armazenada em: meuCachorro['raca']
Já a idade dele está armazenada em: meuCachorro['idade']
E  o nome em: meuCachorro['nome']

Ou seja, os items de um dicionário sempre vem aos pares: chave e valor, separados por :


Exemplo de uso de Dicionário em Python

No código abaixo, criamos um dicionário de nome notas, onde temos:
  1. três chaves: joao, maria, zezinho
  2. três valores: 9, 10 e 4. 

Ou seja, as chaves são os nomes e os valores, as notas.

A seguir, damos três prints para mostrar os nomes e notas:

notas={'joao'   :  9,
       'maria'  : 10,
       'zezinho': 4}

print("Nota de João: ",notas['joao'])
print("Nota de Maria: ",notas['maria'])
print("Nota de José: ",notas['zezinho'])


Ou podemos fazer usando um laço FOR, onde a variável aluno vai receber o valor de cada chave, em sequência, do dicionário:

notas={'joao'   :  9,
       'maria'  : 10,
       'zezinho': 4}

for aluno in notas:
    print("Nota de ", aluno, ": ",notas[aluno])

Nota a maneira como declaramos e inicializamos o dicionário, cada linha um par chave-valor.
Porém, isso não é obrigatório, poderíamos fazer assim:
  • notas={'joao':9,'maria':10,'zezinho':4}

Mas assim é mais organizado e bonitinho:
notas={'joao'   :  9,
       'maria'  : 10,
       'zezinho': 4}

Não concorda?



Exercício de Dicionário

No dicionário abaixo, temos os dados de acesso de 3 usuários, cada um com seu login e senha, onde o login é a chave e a senha o valor.

Faça um script que peça ao usuário seu login e senha, se tiver certo envie uma mensagem de acesso autorizado, se fornecer a senha errada, informe o erro.

loginSenha={'joao'   : 'rush', 'maria'  : 'yes', 'zezinho': 'genesis'}


  • Código Python:

Usaremos a variável login para armazenar o valor de uma chave do dicionário (pode ser joao, maria ou zezinho), em seguida vamos ver se o valor contigo em loginSenha[login] é o mesmo da senha que o usuário digitou.


loginSenha={'joao'   : 'rush',
            'maria'  : 'yes',
            'zezinho': 'genesis'}

login=input("Qual seu login: ")
senha=input("Senha: ")

if loginSenha[login] == senha:
    print("Acesso autorizado...")
else:
    print("Senha errada")


Note que se digitar 'joao' para login e digitar outra senha, como 'yes', vai dar erro.
Cada chave tem apenas um valor associado, são os pares chave-valor.


Dicionário - Para que serve

Assim como as listas, os dicionários são mutáveis, ou seja, podemos inserir, retirar e mudar seus items. Não é permitido, diretamente, apagar uma chave (fazemos algumas coisas, como criar um outro item e apagar um item antigo, mas só a chave diretamente, não se muda).

Não existe ordem, começo ou fim em um dicionário.
Por isso dizemos que são usados para mapeamento, pois mapeiam sua chave com seu valor.

Ou seja, acessamos os items de um dicionário através de suas chaves.
É como se o valor só fosse aberto por uma determinada chave, como um cofre.

Já o fato dele ser desorganizado não implica que ele seja 'bagunçado' ou mais lento. Aliás, o 'embaralhamento' dos items pode até ajudar o computador a achar determinada informação de maneira mais eficiente.

Embora seja comum usar strings como chaves (nomes de pessoas, logins, dados etc), ela pode ser qualquer objeto imutável (não pode listas)./

Nenhum comentário:

Postar um comentário