Dicionários em Python
Dicionários são estruturas de dados que permitem armazenar informações relacionadas de forma organizada. Eles são compostos por pares de chave e valor, onde cada chave é única e está associada a um valor. Essa estrutura permite armazenar diversos tipos de dados, incluindo strings, listas, números, e até outros dicionários.
Estrutura do dicionário
A sintaxe de um dicionário em Python é representada por chaves
{}. Dentro dessas chaves, as
chaves e os valores são separados
por dois pontos :. Os pares chave-valor
são separados por vírgulas. Exemplo:
dicionario = {'nome': 'Natanael', 'idade': 27, 'cidade': 'Guarulhos'}Acessando valores no dicionário
Para acessar os valores armazenados no dicionário, você deve
especificar o nome do dicionário e colocar a chave entre colchetes
[]. Exemplo:
print(dicionario['nome'])# Saída: Natanael
Exemplo completo:
dicionario = {'nome': 'Natanael', 'idade': 27, 'cidade': 'Guarulhos'}cadastro_0 = dicionario['idade']print(str(cadastro_0) + ' anos!')cadastro_1 = dicionario['cidade']print(cadastro_1)
Adicionando novas chaves
Você pode adicionar novas chaves ao dicionário atribuindo um valor à chave desejada. Exemplo:
dicionario['bairro'] = 'Jardim Presidente Dutra'print(dicionario)
Observação: A ordem das chaves em um dicionário não é garantida. O Python não se importa com a ordem, apenas com a associação chave-valor. Por isso, não podemos acessar os elementos do dicionário pelo índice, como em listas.
Criando um dicionário vazio
Um dicionário vazio pode ser criado assim:
dicionario = {}Para adicionar dados a esse dicionário vazio:
dicionario['graduação'] = 'Contabilidade'print(dicionario)
Modificando valores
Para alterar o valor de uma chave, basta usar a chave e atribuir um novo valor. Exemplo:
dicionario['graduação'] = 'Administração'Removendo chaves
Para remover uma chave e seu valor associado, você pode usar o
comando del. Exemplo:
del dicionario['cidade']print(dicionario)
Organizando o dicionário de forma legível
Você pode organizar a declaração do dicionário para torná-lo mais legível, colocando cada par chave-valor em uma linha separada. Exemplo:
dicionario = {'nome': 'Natanael','idade': 27,'cidade': 'Guarulhos'}
Métodos de Dicionário
dicionario.items()
O método .items() retorna uma lista
de tuplas, onde cada tupla contém um par chave-valor. Exemplo:
for chave, valor in dicionario.items():print(f'{chave}: {valor}')
No exemplo acima, ocorre o desempacotamento de tupla,
onde o Python separa automaticamente a chave e o valor de cada par.
Assim, a variável chave recebe a chave,
e valor recebe o valor correspondente.
Desempacotamento
O desempacotamento é o processo de dividir uma estrutura iterável
(como tuplas, listas ou dicionários) em múltiplas variáveis. No
exemplo acima, cada par chave-valor é "desempacotado" para
chave e valor.
O desempacotamento pode ser feito não apenas dentro de laços for,
mas também em outras partes do código, como funções e
atribuições.
Exemplo de desempacotamento fora de um for:
chave, valor = ('nome', 'Natanael')print(chave) # Saída: nomeprint(valor) # Saída: Natanael
O desempacotamento é uma técnica poderosa que permite trabalhar de maneira mais prática com estruturas iteráveis em Python.
Manipulando dados a partir de dicionários:
Podemos manipular conjuntos de dados de diversas maneiras. Dessa forma, é possível realizar diferentes operações utilizando dicionários.
dicionario_0 = {'primeiro': 1, 'segundo': 2}
dicionario_1 = {'terceiro': 3}
dicionario_2 = {'quarto': 4}
# Podemos armazenar todos os dicionários em uma única variável.
# Neste caso, utilizamos uma tupla.
tupla_dicionarios = (dicionario_0, dicionario_1, dicionario_2)
print(tupla_dicionarios)
# ({'primeiro': 1, 'segundo': 2}, {'terceiro': 3}, {'quarto': 4})
# Também podemos armazenar os dicionários em uma lista.
lista_dicionarios = [dicionario_0, dicionario_1, dicionario_2]
print(lista_dicionarios)
# [{'primeiro': 1, 'segundo': 2}, {'terceiro': 3}, {'quarto': 4}]
# Podemos percorrer a lista criada utilizando um laço de repetição.
for valores in lista_dicionarios:
print(valores)
O que é “desempacotar”?
Imagine que você ganhou uma caixa com vários brinquedos dentro.
Essa caixa é a lista:
itens = [1, 2, 3, 4, 5]Agora você quer tirar cada brinquedo da caixa e dar um nome para cada um.
Isso é desempacotar.
A caixa (lista)
A lista guarda tudo junto:
itens = [1, 2, 3, 4, 5]É como uma caixa com 5 coisas dentro.
Tirando os brinquedos da caixa
Quando você escreve:
a, b, c, d, e = itensVocê está dizendo:
o primeiro brinquedo vai para
ao segundo vai para
bo terceiro vai para
co quarto vai para
do quinto vai para
e
Fica assim:
a = 1b = 2c = 3d = 4e = 5
Cada variável pegou um valor da lista!
Ver tudo de uma vez
Se você pedir para mostrar a caixa inteira:
print(itens)Vai aparecer:
[1, 2, 3, 4, 5]Ver só um valor
Se você quiser ver só um brinquedo, por exemplo o que está em
a:
print(a)Vai aparecer:
1Resumindo bem simples
A lista é uma caixa
Desempacotar é tirar cada coisa da caixa
Cada coisa ganha um nome
Assim fica mais fácil usar cada valor separado
Desempacotamento com Laços for.
dicionario = {'primeiro': 1, 'segundo': 2, 'terceiro': 3}
for lista, indice in dicionario.items():
print(lista)
print(indice)Saída:
primeiro
1
segundo
2
terceiro
3Como podemos ver no método, existem duas variáveis criadas:
<lista>e<indice>.
Vejamos a explicação:-
dicionario.items()retorna uma lista de tuplas(chave, valor)do dicionário. -
Ou seja,
dicionario.items()é equivalente a:
[('primeiro', 1), ('segundo', 2), ('terceiro', 3)]
No for, você está desempacotando cada tupla em duas variáveis:
-
listarecebe a chave. -
indicerecebe o valor.Imprimindo os valores:
UTILIZANDO LAÇOS DE REPETIÇÃO COM MÉTODOS EM DICIONÁRIOS:
Um dicionário armazena pares de chave e valor.
dicionario = {'primeiro': 1, 'segundo': 2, 'terceiro': 3}
Acessando as chaves
# Retorna uma visualização das chaves do dicionário
print(dicionario.keys())
dict_keys(['primeiro', 'segundo', 'terceiro'])
# Convertendo as chaves para uma lista
print(list(dicionario.keys()))
['primeiro', 'segundo', 'terceiro']
Percorrendo as chaves (laço de repetição)
# Percorrendo as chaves do dicionário
for chave in dicionario.keys():
print(chave)
Saída:
primeiro
segundo
terceiro
Outros métodos de dicionários
Podemos utilizar outros métodos de dicionários. Todos os métodos podem ser usados fora dos laços de repetição; no entanto, dentro do for, a estrutura sempre será:
python - estrutura
for variavel in dicionario.metodo(): #Utilizando o método .values()
for valor in dicionario.values():
print(valor)
Saída:
1
2
3
Iterando com set(dicionario)
dicionario = {'primeiro': 1, 'segundo': 2, 'terceiro': 3}
for chave in set(dicionario):
print(chave)
Saída (ordem não garantida):
terceiro
primeiro
segundo
Observação: ao usar set(dicionário), a ordem dos elementos não é preservada, pois conjuntos (set) não mantêm ordem.
FUNÇÃO SET() - Muito utilizada em laços de repetição:
O que é set() em Python?
Imagine que você tem uma caixa de brinquedos
Essa caixa tem uma regra muito importante:
Não pode ter brinquedos repetidos
Essa caixa especial é o set().
Exemplo simples
Se você colocar isto na caixa:
brinquedos = set(["bola", "carrinho", "bola", "boneca"])print(brinquedos)
O Python vai dizer:
“Ei! Já tem uma bola, não vou guardar outra!”
Resultado:
{"bola", "carrinho", "boneca"}
Para que serve o set()?
Tirar coisas repetidas
numeros = [1, 2, 2, 3, 3, 3]print(set(numeros))
Fica só:
{1, 2, 3}Ver se algo está lá dentro
frutas = {"maçã", "banana"}print("banana" in frutas) # Simprint("uva" in frutas) # Não
Colocar coisa nova na caixa
frutas.add("uva")Tirar coisa da caixa
frutas.remove("maçã")Regrinhas importantes
A caixa não tem ordem
(não importa quem veio primeiro)Não pode guardar coisas que mudam, tipo listas
Para criar uma caixa vazia:
caixa = set()Resumo
set()é uma caixaNão aceita coisas repetidas
Ajuda a organizar melhor
FUNÇÃO RANGE EM DICIONÁRIOS
Para
ilustrar como podemos utilizar a função range
em conjunto com dicionários, vamos analisar o seguinte exemplo:
dicionario = []
for i in range(3):
listagem = {'indice': 'id', 'nome': 'nomes'}
dicionario.append(listagem)
print('total: ' + str(len(dicionario)))
Explicação passo a passo
Inicialmente, criamos uma lista vazia chamada
dicionario.
Em seguida, utilizamos um laço de repetição for
com a função range(3):
for i in range(3):
A função range(3) gera a sequência de
valores:
0, 1, 2
Isso significa que o laço for
será executado 3 vezes, e a variável i
receberá esses valores a cada iteração:
1ª iteração →
i = 02ª iteração →
i = 13ª iteração →
i = 2
Criação do dicionário dentro do laço
Dentro do laço for, a cada iteração,
é criado um novo dicionário:
listagem = {'indice': 'id', 'nome': 'nomes'}
Esse dicionário é então adicionado à lista
dicionario por meio do método append():
dicionario.append(listagem)
Dessa forma, ao final do laço, a
lista dicionario conterá 3
dicionários.
Resultado final
Após a execução do código, o conteúdo da lista será:
print(dicionario)
Saída:
[
{'indice': 'id', 'nome': 'nomes'},
{'indice': 'id', 'nome': 'nomes'},
{'indice': 'id', 'nome': 'nomes'}
]
Cada dicionário é um objeto independente, mesmo que possuam os mesmos valores.
Contando os itens da
lista com len()
Durante o laço, também utilizamos a função len()
para contar quantos itens existem na lista a cada iteração:
print('total: ' + str(len(dicionario)))
Saída:
total: 1
total: 2
total: 3
Observação sobre a
função len()
Em Python, a função len() retorna o
tamanho (quantidade de itens) de um objeto:
Em strings → conta quantos caracteres existem
Em listas → conta quantos elementos existem
Em dicionários → conta quantas chaves existem
Em resumo, len() responde à pergunta:
“Quantos itens existem dentro desse objeto?”
MUDANDO CARACTERÍSTICAS DE ELEMENTOS EM UM DICIONÁRIO (com listas geradas por laço de repetição)
Podemos realizar a alteração de características de listas geradas por laço for em um dicionário, pois o python considera cada item como um objeto diferente, sendo assim, possível alterações individualizadas.
lista = []
for listagem in range(3):
dicionario = {'nome': 'nomes', 'numeração': 'item'}
lista.append(dicionario)
for indice in lista:
if indice['nome'] == 'nomes':
indice['nome'] = 'cadastro'
indice['numeração'] = 'id'
elif indice['nome'] == 'nome':
dicionario['numeração'] = 'numeros'
print(lista)
[{'nome': 'cadastro', 'numeração': 'id'}, {'nome': 'cadastro', 'numeração': 'id'}, {'nome': 'cadastro', 'numeração': 'id'}]
Acesso às informações em um dicionário
Considere o dicionário abaixo:
lista = {'nomes': 'primeiro nome', 'sobrenomes': 'últimos sobrenomes'}
print(lista['nomes'])
Saída:
primeiro nome
Nesse caso, o acesso é feito por meio da chave do dicionário ('nomes').
LISTAS EM UM DICIONARIO
dados_cnpj = {'numero de inscrição':'none','endereço':['Ribas do Rio Pardo','99','Soimco','Guarulhos','Sao Paulo']}
for cnpj in dados_cnpj['endereço']:
print(cnpj)
Ribas do Rio Pardo
99
Soimco
Guarulhos
Sao Paulo
# 1° percorremos o dicionário dados_cnpj com um laço for, a chave endereço possui uma lista associada a ela.
# para exibir os dados usamos a chave endereço.
cadesp = {'IE':['CNPJ','Nome','Nome Fantasia'],'endereço':['RUA RIBAS DO RIO PARDO','99','CEP: 07.182-150','Município: GUARULHOS','Bairro: CIDADE SOIMCO','UF: SP']}
for pesquisa, empresa in cadesp.items():
print("cadastro é"+pesquisa)
for consulta in empresa:
print(consulta)
cadastro éIE
CNPJ
Nome
Nome Fantasia
cadastro éendereço
RUA RIBAS DO RIO PARDO
99
CEP: 07.182-150
Município: GUARULHOS
Bairro: CIDADE SOIMCO
UF: SP
DICIONÁRIOS EM UM DICIONARIO
consulta_optantes = {'Situação Atual':{'Situação no Simples Nacional:':'Optante pelo Simples Nacional desde 19/09/2025','Situação no SIMEI:':'Enquadrado no SIMEI desde 19/09/2025'},
'Períodos Anteriores':{'Opções pelo Simples Nacional em Períodos Anteriores:':' Não Existem'}}
for optantes, situação in consulta_optantes.items():
status = situação.get('Situação no SIMEI:')
if status:
print(status)
Enquadrado no SIMEI desde 19/09/2025
porque o codigo não pode ser estruturado da seguinte maneira?
for optantes, situação in consulta_optantes.items():
status = situação.get('Situação no SIMEI')
print(status) None
explicando:
O
None
acontece porque a
chave que você está buscando não existe em todas as iterações do
loop.
Na
primeira
iteração
(Situação
Atual),
a chave existe → retorna o valor correto.
Na
segunda
iteração
(Períodos
Anteriores),
essa
chave não existe
→ .get()
retorna None.
Como
o loop continua, o valor final de status
fica sendo None.
Acesso por índice
Dicionários não possuem índices numéricos. Para acessar os valores por posição, é necessário primeiro convertê-los em uma lista:
Saída:
Explicando o fatiamento (slice)
O fatiamento [:] é usado para acessar partes de listas, strings ou outros objetos sequenciais.
Formato geral:
lista[inicio:fim]
Exemplos:
-
[:]→ copia toda a lista -
[0:3]→ pega os três primeiros elementos -
[1:4]→ pega os elementos do índice 1 ao 3 -
[2:]→ do índice 2 até o final -
[:3]→ do início até o índice 2
Exemplo prático:
lista = {'nomes': 'primeiro nome', 'sobrenomes': 'ultimos sobrenomes'}
valores = list(lista.values())
print(valores[:])
Saída:
['primeiro nome', 'ultimos sobrenomes']
Esse comando retorna todos os valores do dicionário convertidos em lista.
Outro detalhe importante:
Em Python, o :
(dois-pontos) indica que a partir dali começa um
bloco de código.
Ele diz ao Python:
“A próxima linha (indentada) faz parte desta instrução.”
Python não
usa { } como outras linguagens
— ele usa : + indentação.
Onde o :
é usado
Estruturas de
decisão (if, elif,
else)
if idade >= 18:
print("Maior de idade")
Laços de repetição
(for, while)
for i in range(3):
print(i)
Tudo que estiver indentado executa dentro do loop.
Funções (def)
def saudacao():
print("Olá!")
O :
indica onde começa o corpo da função.
Classes (class)
class Pessoa:
pass
Define o bloco da classe.
Dicionários (significado diferente)
dados = {"nome": "Ana", "idade": 15}
Aqui o :
separa chave e valor, não cria bloco.
: indica o início de um
bloco de código
O bloco é definido pela indentação
Substitui
{}de outras linguagens
Em dicionários, o
:apenas separa chave : valor
Comentários
Postar um comentário