DEV Community

sarah santana
sarah santana

Posted on

Python #4: estrutura de dados - dicionários

Esse post faz parte dos meus cadernos pessoais de estudos. Todas as anotações são baseadas nas aulas da Mentorama - Cientista de Dados do zero e organizadas sob o meu ponto de vista. M2A1A5.


Estrutura de Dados em Python

Definição: Coleções de dados com características específicas

Dicionários

Mutáveis, conceito chave-valor.

O dicionário coleciona pares de elementos. Sempre haverá uma chave e seu valor correspondente.


Criando um dicionário

dicionario = {}
dicionario
{}
type(dicionario)
dict

Também dá pra criar usando a função dict igual fizemos com a função tuple

A inspiração é a mesma de um dicionário comum:

dict_en_pt = {"data science" : "ciência de dados",
"machine learning" : "aprendizado de máquina",
"deep learning" : "aprendizado profundo"}

Pareando chave-valor

O dicionário é apresentado entre colchetes { }
Primeiro se insere a chave, dois pontos, e o valor.

Ex.: notas_prova1 = {"Joao":10,"Maria":7.5, "Pedro":6}

As chaves sempre são únicas. Imagine que ao abrir um dicionário, você não encontra a mesma palavra duas vezes.

Sendo assim, quando você atribui um novo valor à uma variável, o Python vai *sobrescrever * a chave já existente.

notas_prova1["Joao"] = 9
notas_prova1
{'Joao': 9, 'Maria': 7.5, 'Pedro': 6}

Você não adicionou outro "João" e sim mudou a nota de 10 pra 9.

Criando uma nova chave

notas_prova1["Mariana"] = 8.7

não tem nenhuma chave Mariana, então ela será criada automaticamente

Funções do dicionário

Função: update

notas_prova1.update({"Joaquin":7.7})

como não tinha nenhum Joaquin, a chave foi criada e não sobrescrita.

Para contar os elementos, usamos len igual nas outras estruturas, porém um elemento no dicionário é um par chave-valor, então ele retornará o número de pares.

len(notas_prova1)
5

Acessar um valor
  • via chave notas_prova1{"Joao"} 9

ou via função get

notas_prova1.get("Joao")
9

  • via indexação a indexação é pela chave e não pela posição como nas listas

notas_prova1[0]
KeyError: 0

Alterar um valor

Mudar o valor da chave. Ex:

notas_prova1["Pedro] = 6.5

O valor pode ser de vários tipos, por exemplo, uma lista de notas daquele aluno. Não somente uma nota, como anteriormente.

notas_provas={"Joao": [9, 9.5], "Maria": [7.5, 8], "Pedro": [6.5, 6], "Mariana": [8.7, 9]

  • valores com tipos diferentes

dic_formulario = {"nome": "Joao", "idade" : 18, "nota_1" :9}

  • chaves de tipos diferentes

dic_chavesvariostipos ={ "Nome":"Joao", 1: True, 2: 9.5}


FUNÇÕES BÁSICAS PARA DICIONÁRIOS

get: acessar
keys: mostra todas as chaves do dicionário
values: mostra todas os valores
itens: mostra todos os pares chave-valor
pop: remove o par de acordo com a chave
update: cria ou altera uma chave
clear: apaga valores de um dicionário

Função ZIP

Essa função pega o primeiro elemento da lista A e pareia com o primeiro da lista B.

lista_nomes = ["Maria", "Joao", "Pedro", "Mariana"]
lista_notas = [ 7.5,9,6.5,8.7]
print(lista_nomes)
['Maria', 'Joao', 'Pedro', 'Mariana']
print(lista_notas)
[7.5, 9, 6.5, 8.7]

cria-se uma lista com tuplas:

lista_pares = list(zip(lista_nomes, lista_notas)) ; lista_pares
[('Maria', 7.5), ('Joao', 9), ('Pedro', 6.5), ('Mariana', 8.7)]

e agora transforma essa lista em dicionário:

dict(lista_pares)
{'Maria': 7.5, 'Joao': 9, 'Pedro': 6.5, 'Mariana': 8.7}

Top comments (0)