Pular para o conteúdo

Como Iterar em um Dicionário em Python?

[

Como Iterar por um Dicionário em Python

por Anonymous

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

Ter um conhecimento sólido da iteração de dicionários ajudará você a escrever um código melhor e mais robusto. Em sua jornada pela iteração de dicionários, você escreverá vários exemplos que ajudarão a ilustrar os conceitos.

Começando com Dicionários do Python

Primeiro, é importante entender como os dicionários funcionam em Python. Um dicionário é uma coleção de pares chave-valor, em que cada chave é única e associada a um valor. Os dicionários são definidos utilizando a sintaxe {} e podem ser inicializados com pares chave-valor separados por vírgulas.

Aqui está um exemplo simples de um dicionário que contém informações sobre uma pessoa:

pessoa = {
'nome': 'João',
'idade': 30,
'profissão': 'engenheiro'
}

Neste exemplo, temos três pares chave-valor: 'nome': 'João', 'idade': 30 e 'profissão': 'engenheiro'. A chave 'nome' está associada ao valor 'João', a chave 'idade' está associada ao valor 30 e assim por diante.

Agora que você tem uma compreensão básica de como os dicionários funcionam em Python, vamos explorar diferentes maneiras de iterar por eles.

Entendendo como Iterar por um Dicionário em Python

Existem várias maneiras de iterar por um dicionário em Python, cada uma adequada para diferentes situações. Vamos examinar as principais formas abaixo.

Percorrendo um Dicionário Diretamente

A forma mais simples de iterar por um dicionário é percorrer suas chaves diretamente. Para isso, podemos usar o loop for junto com a função keys().

Aqui está um exemplo que percorre as chaves do dicionário pessoa e imprime cada uma delas:

for chave in pessoa.keys():
print(chave)

A saída será:

nome
idade
profissão

Neste exemplo, usamos pessoa.keys() para obter uma lista de todas as chaves do dicionário pessoa. Em seguida, o loop for itera sobre essas chaves e as imprime uma por uma.

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

Uma outra forma de iterar por um dicionário é percorrer seus itens, ou seja, seus pares chave-valor. Podemos fazer isso usando o método items().

Aqui está um exemplo que percorre os itens do dicionário pessoa e imprime cada um deles, separadamente:

for chave, valor in pessoa.items():
print(chave, valor)

A saída será:

nome João
idade 30
profissão engenheiro

Neste exemplo, usamos pessoa.items() para obter uma lista de todos os itens do dicionário pessoa. O loop for itera sobre esses itens e os desempacota nas variáveis chave e valor. Em seguida, essas variáveis são impressas.

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

Outra forma útil de iterar por um dicionário é percorrer apenas seus valores. Isso pode ser feito usando o método values().

Aqui está um exemplo que percorre os valores do dicionário pessoa e imprime cada um deles:

for valor in pessoa.values():
print(valor)

A saída será:

João
30
engenheiro

Neste exemplo, usamos pessoa.values() para obter uma lista de todos os valores do dicionário pessoa. Então, o loop for itera sobre esses valores e os imprime um por um.

Essas são as três formas principais de iterar por um dicionário em Python. Cada uma tem sua utilidade e pode ser aplicada em diferentes cenários. No entanto, há considerações adicionais a serem feitas ao iterar por um dicionário.

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

Ao iterar por um dicionário em Python, você pode alterar seus valores ou fazer operações com eles. No entanto, é importante ter cuidado ao fazer isso, pois pode causar comportamentos inesperados.

Se você precisa modificar os valores durante a iteração, é recomendável criar uma cópia do dicionário original e, em seguida, iterar pela cópia. Aqui está um exemplo:

for chave, valor in pessoa.copy().items():
pessoa[chave] = str(valor) + ' anos'

Neste exemplo, a cada iteração, o valor de cada chave do dicionário pessoa é convertido em uma string e concatenado com a palavra “anos”. Como estamos iterando por uma cópia do dicionário original, não afetamos a iteração em si.

No entanto, se você precisar adicionar ou remover chaves durante a iteração, é recomendável utilizar o módulo collections. O método defaultdict pode ser especialmente útil nesses casos.

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

Ao remover itens de um dicionário durante a iteração, é importante fazê-lo com segurança, para evitar erros. Uma forma segura de remover itens é usar o método pop() em combinação com a função list() para criar uma cópia estática dos itens do dicionário.

Aqui está um exemplo que remove os itens do dicionário pessoa que possuem um valor menor que 30:

for chave in list(pessoa):
if pessoa[chave] < 30:
pessoa.pop(chave)

Neste exemplo, usamos o list(pessoa) para criar uma cópia estática das chaves do dicionário pessoa. Em seguida, percorremos essa cópia com um loop for. Se o valor correspondente a uma chave for menor que 30, removemos essa chave do dicionário usando o método pop().

Exemplos de Looping em Dicionários: laço for

Agora que você entendeu as bases da iteração de dicionários em Python, vamos explorar alguns exemplos práticos de uso do laço for.

Filtrando Itens pelo Valor

Suponha que você tenha um dicionário que contenha nomes de pessoas e suas idades, e você queira filtrar apenas as pessoas maiores de 18 anos. Você pode fazer isso usando um laço for e uma estrutura de comparação:

pessoas = {
'João': 27,
'Maria': 35,
'Pedro': 19,
'Ana': 16
}
for nome, idade in pessoas.items():
if idade > 18:
print(nome, idade)

A saída será:

João 27
Maria 35
Pedro 19

Neste exemplo, usamos um laço for para percorrer o dicionário pessoas com a função items(). Em seguida, filtramos apenas as pessoas cuja idade é maior que 18 usando uma instrução condicional if. Por fim, imprimimos o nome e a idade dessas pessoas.

Executando Cálculos com Chaves e Valores

Suponha que você tenha um dicionário que contenha preços de produtos e suas quantidades vendidas, e você queira calcular o valor total das vendas para cada produto. Você pode fazer isso utilizando um laço for e uma variável de acumulação:

produtos = {
'Produto A': 10,
'Produto B': 5,
'Produto C': 8
}
total_vendas = 0
for produto, quantidade in produtos.items():
total_vendas += produto * quantidade
print('O valor total das vendas é:', total_vendas)

A saída será:

O valor total das vendas é: 130

Neste exemplo, usamos um laço for para percorrer o dicionário produtos com a função items(). Em seguida, multiplicamos o preço de cada produto pela quantidade vendida e somamos esse valor à variável total_vendas. Por fim, imprimimos o valor total das vendas.

Trocando Chaves e Valores Durante a Iteração

Suponha que você tenha um dicionário que contenha a pontuação dos alunos em uma prova e você queira trocar as chaves com os valores e vice-versa. Você pode fazer isso utilizando um laço for e criando um novo dicionário:

pontuacao = {
'João': 80,
'Maria': 95,
'Pedro': 70
}
novo_dicionario = {}
for nome, pontuacao in pontuacao.items():
novo_dicionario[pontuacao] = nome
print(novo_dicionario)

A saída será:

{80: 'João', 95: 'Maria', 70: 'Pedro'}

Neste exemplo, usamos um laço for para percorrer o dicionário pontuacao com a função items(). Em seguida, associamos a pontuação de cada aluno com o seu nome no novo dicionário. Por fim, imprimimos o novo dicionário.

Conclusão

A iteração por um dicionário em Python é uma habilidade essencial para qualquer programador. Neste tutorial, você aprendeu as principais formas de iterar por um dicionário, incluindo a iteração direta pelas chaves, a iteração pelos itens (chave-valor) e a iteração pelos valores. Além disso, você também aprendeu como modificar valores durante a iteração, como remover itens com segurança e como realizar operações específicas utilizando laços for.

Com esse conhecimento, você está bem preparado para utilizar os dicionários do Python em seus projetos e aproveitar ao máximo seus recursos.