Curso de Python

Aula 13 - Dicionários em Python

Dicionários em Python

Um dicionário armazena dados em pares chave-valor. Dicionários também são uma coleção não ordenada e são mutáveis, isso significa que podemos utilizar funções e métodos para alterar pares de chave-valor. Diferentemente das listas, dicionários usam as chaves para identificar os seus valores. Cada chave deve ser única, isso é, possuir apenas um único nome.

Sintaxe básica

sintaxe.py
# Sintaxe básica
dicionario = {
    'chave': 'valor'
}

# Exemplo de dicionário
frutas = {
    'Maçã': 0.99,
    'Laranja': 1.39,
    'Abacaxi': 1.99
}
print(frutas)

# Em uma linha
frutas = {'Maçã': 0.99, 'Laranja': 1.39, 'Abacaxi': 1.99}

Acessando e Modificando Dados

acesso.py
dados = {
    1: 'Henrique da Costa',
    2: 'Felipe dos Santos',
    3: 'Arthur Feitosa',
    4: 'Marcos Teixeira',
    5: 'Fábio Alberto'
}

# Acessando valores
print(dados[2])  # Felipe dos Santos

# Modificando valores
dados[3] = 'Marco Antônio'  # Atualiza valor
dados[6] = 'Luiza Moura'    # Adiciona novo par

# Removendo pares
del dados[2]
del dados[4]

Métodos Úteis

metodos.py
frutas = {
    'Maçã': 3.99,
    'Laranja': 4.99,
    'Limão': 2.99,
    'Abacaxi': 1.99,
    'Manga': 1.59
}

# Removendo elementos
del frutas['Abacaxi']
frutas.popitem()  # Remove último
frutas.pop('Maçã')  # Remove por chave

# Acesso seguro
print(frutas.get('Limão', 'Fruta não encontrada'))
print(frutas.get('Pêra', 'Fruta não encontrada'))

# Verificações
print('Laranja' in frutas)  # True
print('Tomate' not in frutas)  # True

# Limpando tudo
frutas.clear()

Chaves, Valores e Itens

itens.py
compras = {
    'Arroz': 3.45,
    'Feijão': 2.90,
    'Macarrão': 4.50,
    'Sushi': 1.35
}

# Obtendo chaves, valores e itens
print(compras.keys())    # dict_keys(['Arroz', 'Feijão',...])
print(compras.values())  # dict_values([3.45, 2.9,...])
print(compras.items())   # dict_items([('Arroz', 3.45),...])

Dicionários Aninhados

aninhados.py
pessoas = {
    'João Miguel': {
        'idade': 14,
        'cidade': 'Cidade dos Astronautas',
        'rua': 'Rua dos Capixabas'
    },
    'Lucas Ferreira': {
        'idade': 23,
        'cidade': 'Cidade do Folclore',
        'rua': 'Rua dos Caçadores'
    }
}

# Acessando dados aninhados
print(pessoas['João Miguel']['idade'])  # 14

Exemplo Prático

exemplo.py
# Análise de notas de alunos
alunos = {
    'João': 7.90,
    'Mariane': 5.60,
    'Cristopher': 8.55,
    'Lucas': 4.50
}

# Cálculos
total = sum(alunos.values())
quantidade = len(alunos)
media = total / quantidade

print(f"Total: {total}")
print(f"Quantidade: {quantidade}")
print(f"Média: {media:.2f}")

# Iterando com for
for nome, nota in alunos.items():
    print(f"{nome}: {nota}")