Pular para o conteúdo

Iterando em um dicionário com Python: Como fazer?

CodeMDD.io

Como Iterar por um Dicionário em Python

Os dicionários são uma das estruturas de dados mais importantes e úteis incorporadas ao Python. Eles estão presentes em todos os lugares e são uma parte fundamental da própria linguagem. No seu código, você usará dicionários para resolver muitos problemas de programação que podem exigir a iteração do dicionário em questão. Neste tutorial, você mergulhará fundo em como iterar por um dicionário em Python.

Começando Com Dicionários Python

Antes de aprendermos a iterar por um dicionário, é importante entendermos como criar e trabalhar com dicionários em Python. Um dicionário é uma coleção não ordenada de pares chave-valor, onde cada chave é única e armazena um valor associado a ela.

Existem duas maneiras comuns de criar um dicionário em Python:

  1. Usando chaves ({}) e pares chave-valor separados por dois pontos (:). Por exemplo:
meu_dicionario = {"chave1": valor1, "chave2": valor2}
  1. Usando a função dict() e uma sequência de tuplas chave-valor. Por exemplo:
meu_dicionario = dict([(chave1, valor1), (chave2, valor2)])

Uma vez que você tenha um dicionário, você pode acessar seus valores usando as chaves correspondentes. Por exemplo:

meu_dicionario = {"nome": "João", "idade": 25}
print(meu_dicionario["nome"]) # Saída: João
print(meu_dicionario["idade"]) # Saída: 25

Entendendo Como Iterar por um Dicionário em Python

Agora que sabemos como criar e acessar um dicionário, vamos aprender as diferentes maneiras de iterar por ele.

Percorrendo um Dicionário Diretamente

Uma maneira simples de iterar por um dicionário é percorrendo diretamente as suas chaves. Podemos fazer isso utilizando um loop for. Por exemplo:

meu_dicionario = {"nome": "João", "idade": 25}
for chave in meu_dicionario:
print(chave, meu_dicionario[chave])

Saída:

nome João
idade 25

Nesse caso, o loop for retorna as chaves do dicionário e podemos usá-las para imprimir os valores correspondentes.

Iterando pelos Itens do Dicionário: O Método .items()

Outra maneira de iterar por um dicionário é utilizando o método .items(). Esse método retorna uma lista de tuplas contendo cada chave e seu respectivo valor. Podemos então utilizar um loop for para percorrer essas tuplas. Por exemplo:

meu_dicionario = {"nome": "João", "idade": 25}
for chave, valor in meu_dicionario.items():
print(chave, valor)

Saída:

nome João
idade 25

Nesse caso, o loop for retorna as tuplas (chave, valor) e podemos desempacotar essas tuplas nas variáveis chave e valor para imprimi-las.

Iterando pelas Chaves do Dicionário: O Método .keys()

Se você estiver interessado apenas nas chaves do dicionário, pode utilizar o método .keys(). Esse método retorna uma lista contendo todas as chaves do dicionário. Podemos então utilizar um loop for para percorrer essa lista. Por exemplo:

meu_dicionario = {"nome": "João", "idade": 25}
for chave in meu_dicionario.keys():
print(chave, meu_dicionario[chave])

Saída:

nome João
idade 25

Nesse caso, o loop for retorna as chaves do dicionário e podemos usá-las para imprimir os valores correspondentes.

Percorrendo os Valores do Dicionário: O Método .values()

Se você estiver interessado apenas nos valores do dicionário, pode utilizar o método .values(). Esse método retorna uma lista contendo todos os valores do dicionário. Podemos então utilizar um loop for para percorrer essa lista. Por exemplo:

meu_dicionario = {"nome": "João", "idade": 25}
for valor in meu_dicionario.values():
print(valor)

Saída:

João
25

Nesse caso, o loop for retorna os valores do dicionário e podemos imprimi-los diretamente.

Alterando Valores do Dicionário Durante a Iteração

Uma coisa importante a ser observada é que, ao iterar por um dicionário, não é seguro alterar seus valores diretamente. Isso pode levar a resultados inesperados ou até mesmo a erros. Se você precisar alterar os valores durante a iteração, é recomendado criar uma cópia do dicionário original e modificá-la enquanto itera. Por exemplo:

meu_dicionario = {"a": 1, "b": 2, "c": 3}
for chave, valor in meu_dicionario.items():
meu_dicionario[chave] = valor * 2 # Modificando o valor
print(meu_dicionario)

Saída:

{'a': 2, 'b': 4, 'c': 6}

Nesse caso, criamos uma cópia do dicionário original para evitar alterar seus valores diretamente durante a iteração.

Removendo Items de um Dicionário com Segurança Durante a Iteração

Assim como ao modificar os valores do dicionário, também não é seguro remover items do dicionário diretamente durante a iteração. Isso pode causar problemas como itens pulados ou erros. Se você precisar remover items do dicionário durante a iteração, é recomendado criar uma lista de items a serem removidos e excluir esses items fora do loop. Por exemplo:

meu_dicionario = {"a": 1, "b": 2, "c": 3}
items_a_remover = []
for chave, valor in meu_dicionario.items():
if valor < 2:
items_a_remover.append(chave)
for chave in items_a_remover:
del meu_dicionario[chave]
print(meu_dicionario)

Saída:

{'b': 2, 'c': 3}

Nesse caso, criamos uma lista items_a_remover para armazenar as chaves dos itens que desejamos remover. Em seguida, iteramos novamente por essa lista e excluímos os items correspondentes do dicionário original.

Exemplos de Looping por Dicionários

Agora que entendemos as diferentes formas de iterar por um dicionário em Python, vamos ver alguns exemplos práticos de looping que podem ser úteis no desenvolvimento de aplicativos.

Filtrando Items pelos Seus Valores

Digamos que temos um dicionário contendo alunos e suas notas, e queremos filtrar apenas os alunos que obtiveram uma nota acima de 90. Podemos fazer isso utilizando um loop for e uma estrutura condicional. Por exemplo:

notas = {"João": 85, "Maria": 92, "Pedro": 88, "Ana": 95}
for aluno, nota in notas.items():
if nota > 90:
print(aluno, nota)

Saída:

Maria 92
Ana 95

Nesse caso, utilizamos um loop for para percorrer os items do dicionário notas. Em seguida, verificamos se a nota de cada aluno é maior que 90 e imprimimos o nome do aluno e sua nota correspondente.

Realizando Cálculos com Chaves e Valores

Digamos que temos um dicionário contendo produtos e suas quantidades em estoque, e queremos calcular o total de produtos em estoque. Podemos fazer isso utilizando um loop for e uma variável acumuladora. Por exemplo:

estoque = {"produto1": 10, "produto2": 15, "produto3": 5}
total_estoque = 0
for produto, quantidade in estoque.items():
total_estoque += quantidade
print(total_estoque)

Saída:

30

Nesse caso, utilizamos um loop for para percorrer os items do dicionário estoque. Em seguida, adicionamos a quantidade de cada produto à variável total_estoque.

Trocando Chaves e Valores Durante a Iteração

Digamos que temos um dicionário contendo nomes de países como chaves e seus respectivos códigos de telefone como valores, e queremos criar um novo dicionário onde os códigos de telefone são as chaves e os nomes dos países são os valores. Podemos fazer isso utilizando um loop for e criando um novo dicionário. Por exemplo:

paises = {"Brasil": 55, "Estados Unidos": 1, "Canadá": 1, "Argentina": 54}
novo_dicionario = {}
for pais, codigo in paises.items():
novo_dicionario[codigo] = pais
print(novo_dicionario)

Saída:

{55: 'Brasil', 1: 'Canadá', 54: 'Argentina'}

Nesse caso, utilizamos um loop for para percorrer os items do dicionário paises. Em seguida, adicionamos um novo item ao novo_dicionario utilizando o código de telefone como chave e o nome do país como valor.

Conclusão

A iteração por um dicionário em Python é uma habilidade essencial de programação. Neste tutorial, você aprendeu várias maneiras de iterar por um dicionário, incluindo percorrer diretamente as chaves, utilizar os métodos .items(), .keys() e .values(), e realizar operações de modificação e remoção com segurança durante a iteração.

Agora que você tem um bom entendimento de como iterar por um dicionário em Python, você poderá aplicar esse conhecimento em seus projetos e escrever um código mais elegante e eficiente. Continue praticando e explorando os recursos do Python para aprimorar suas habilidades de programação.