Como iterar por um dicionário em Python?
Como iterar através de um dicionário em Python
Introdução aos Dicionários Python
Os dicionários são uma das estruturas de dados mais importantes e úteis incorporadas no Python. Eles estão em toda parte 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 através do dicionário em questão. Neste tutorial, você irá aprofundar-se em como iterar através de um dicionário em Python.
Um sólido conhecimento de iteração de dicionários ajudará você a escrever um código melhor e mais robusto. Em sua jornada através da iteração de dicionários, você escreverá vários exemplos que o ajudarão a entender melhor o processo.
Compreendendo como iterar através de um dicionário em Python
Existem várias maneiras de iterar através de um dicionário em Python. Nesta seção, você aprenderá diferentes métodos para fazer isso.
Percorrendo um dicionário diretamente
Uma maneira simples de iterar através de um dicionário é percorrer as chaves do dicionário e acessar os valores correspondentes. Você pode fazer isso usando um loop for
da seguinte forma:
Neste exemplo, o loop for
percorre as chaves do dicionário my_dict
. Em cada iteração, a chave é armazenada na variável key
e o valor correspondente é acessado usando essa chave. O resultado é impresso no console.
Iterando sobre os itens do dicionário: O método .items()
Outra maneira de iterar através de um dicionário é usando o método .items()
. Esse método retorna uma lista de tuplas contendo pares de chave-valor do dicionário. Você pode usar um loop for
para percorrer essas tuplas e acessar as chaves e valores individualmente. Veja o exemplo abaixo:
Neste exemplo, o loop for
percorre as tuplas retornadas pelo método .items()
. Em cada iteração, a chave é armazenada na variável key
e o valor é armazenado na variável value
. O resultado é impresso no console.
Iterando pelas chaves do dicionário: O método .keys()
Se você estiver interessado apenas nas chaves do dicionário e não nos valores correspondentes, pode usar o método .keys()
. Esse método retorna um objeto de visualização das chaves do dicionário que você pode iterar diretamente. Veja o exemplo abaixo:
Neste exemplo, o loop for
itera diretamente sobre as chaves do dicionário retornadas pelo método .keys()
. A chave é acessada diretamente e impressa no console.
Percorrendo os valores do dicionário: O método .values()
Se você estiver interessado apenas nos valores do dicionário e não nas chaves, pode usar o método .values()
. Esse método retorna um objeto de visualização dos valores do dicionário que você pode iterar diretamente. Veja o exemplo abaixo:
Neste exemplo, o loop for
itera diretamente sobre os valores do dicionário retornados pelo método .values()
. O valor é acessado diretamente e impresso no console.
Alterando valores do dicionário durante a iteração
Ao iterar através de um dicionário em Python, você também pode fazer alterações nos valores do dicionário. No entanto, é importante ter cuidado ao fazer isso, pois pode causar comportamentos inesperados no loop. Recomenda-se evitar a alteração do tamanho do dicionário durante a iteração, pois isso pode levar a saltos de chave ou valores perdidos. Se você precisar modificar um valor do dicionário durante a iteração, convém criar uma cópia do dicionário original e iterar sobre essa cópia.
Removendo itens com segurança de um dicionário durante a iteração
Ao iterar através de um dicionário em Python, você também pode remover itens com segurança usando o método .pop()
ou utilizando a declaração del
. No entanto, o método .pop()
retorna o valor do item removido, o que pode ser útil se você precisar usar esse valor posteriormente. Veja os exemplos abaixo:
No primeiro exemplo, o item com a chave "a"
é removido do dicionário usando o método .pop()
. O valor desse item é armazenado na variável value
e é impresso no console.
No segundo exemplo, o item com a chave "b"
é removido do dicionário usando a declaração del
.
Iterando através de dicionários: exemplos de loops for
Agora que você conhece os conceitos básicos da iteração através de um dicionário em Python, vamos olhar alguns exemplos de loops for
que ilustram várias técnicas úteis.
Filtrando itens pelo seu valor
Você pode iterar através de um dicionário e filtrar os itens com base em seu valor. Vamos dar uma olhada em um exemplo:
Neste exemplo, o loop for
itera sobre as tuplas retornadas pelo método .items()
. Em cada iteração, a chave é armazenada na variável key
e o valor é armazenado na variável value
. Em seguida, é feita uma verificação condicional para determinar se o valor é maior que 1. Se a condição for verdadeira, a chave e o valor são impressos no console.
Executando cálculos com chaves e valores
Além de filtrar itens, você também pode executar cálculos com as chaves e valores de um dicionário durante a iteração. Vamos ver um exemplo:
Neste exemplo, o loop for
itera sobre as tuplas retornadas pelo método .items()
. Em cada iteração, o valor é acessado diretamente e adicionado à variável total
. No final do loop, o valor total é impresso no console.
Trocando chaves e valores através da iteração
Às vezes, pode ser útil trocar as chaves e os valores de um dicionário durante a iteração. Vamos dar uma olhada em um exemplo:
Neste exemplo, o loop for
itera sobre as tuplas retornadas pelo método .items()
. Em cada iteração, a chave e o valor são acessados diretamente. No novo dicionário new_dict
, a chave e o valor são trocados, ou seja, a chave se torna o valor e o valor se torna a chave. O novo dicionário é impresso no console.
Iterando através de dicionários: exemplos de comprehensions
Outra forma concisa de iterar através de um dicionário em Python é usando comprehensions. Comprehensions permitem criar uma nova estrutura de dados a partir de uma iteração, aplicando filtros e transformações aos elementos. Vamos ver exemplos de comprehensions aplicados a dicionários.
Filtrando itens pelo seu valor: Revisitado
Podemos usar um comprehension para filtrar itens de um dicionário com base em seu valor. Vamos dar uma olhada no exemplo a seguir:
Neste exemplo, o comprehension itera sobre as tuplas retornadas pelo método .items()
. Em cada iteração, a chave e o valor são acessados diretamente. A condição if value > 1
filtra os itens com valor maior que 1. O novo dicionário filtered_dict
é criado com as chaves e valores filtrados. O novo dicionário é impresso no console.
Trocando chaves e valores através da iteração: Revisitado
Também podemos usar comprehensions para trocar as chaves e os valores de um dicionário durante a iteração. Vamos dar uma olhada no exemplo a seguir:
Neste exemplo, o comprehension itera sobre as tuplas retornadas pelo método .items()
. Em cada iteração, a chave e o valor são acessados diretamente. No novo dicionário swapped_dict
, a chave e o valor são trocados, ou seja, a chave se torna o valor e o valor se torna a chave. O novo dicionário é impresso no console.
Percorrendo um dicionário em ordem classificada e reversa
Em certos casos, pode ser necessário percorrer um dicionário em uma ordem classificada ou reversa. Python oferece funções e métodos integrados que facilitam essa tarefa.
Iterando sobre chaves classificadas
Se você quiser iterar sobre as chaves de um dicionário em ordem classificada, você pode usar a função sorted()
. Veja um exemplo:
Neste exemplo, a função sorted()
é usada para classificar as chaves do dicionário em ordem alfabética. O loop for
itera sobre as chaves classificadas e as imprime no console.
Percorrendo os valores classificados
Se você quiser iterar sobre os valores de um dicionário em ordem classificada, você pode usar a função sorted()
em conjunto com o método .values()
. Veja um exemplo:
Neste exemplo, a função sorted()
é usada para classificar os valores do dicionário em ordem crescente. O loop for
itera sobre os valores classificados e os imprime no console.
Classificando um dicionário com uma comprehension
Você também pode usar uma comprehension para classificar um dicionário. Veja o exemplo abaixo:
Neste exemplo, uma comprehesion é utilizada para criar um novo dicionário, sorted_dict
, com as chaves classificadas em ordem alfabética e os valores correspondentes do dicionário original. O novo dicionário é impresso no console.
Iterando através de um dicionário em ordem reversa classificada
Python também fornece uma maneira de iterar através de um dicionário em ordem reversa classificada. Veja o exemplo abaixo:
Neste exemplo, a função sorted()
é usada para classificar as chaves do dicionário em ordem alfabética reversa. O parâmetro reverse=True
indica que a ordem deve ser reversa. O loop for
itera sobre as chaves classificadas reversamente e as imprime no console.
Percorrendo um dicionário em ordem reversa
Se você quiser iterar sobre um dicionário em ordem reversa, sem classificar as chaves, você pode usar o método .reverse()
. Veja um exemplo:
Neste exemplo, o método .reverse()
é usado para reverter a ordem das chaves do dicionário. O loop for
itera sobre as chaves reversas e as imprime no console.
Iterando sobre um dicionário destrutivamente com .popitem()
Se você precisar iterar sobre um dicionário de forma destrutiva, removendo itens à medida que avança, pode usar o método .popitem()
. Esse método remove e retorna um item aleatório do dicionário como uma tupla contendo a chave e o valor correspondentes. Veja um exemplo:
Neste exemplo, o laço while
continua até que o dicionário esteja vazio. A cada iteração, o método .popitem()
remove um item aleatório do dicionário e retorna a chave e o valor como uma tupla. A tupla é armazenada nas variáveis key
e value
e é impressa no console.
Usando funções integradas para iterar implicitamente através de dicionários
Python também fornece funções integradas que permitem iterar implicitamente através de dicionários, aplicando transformações ou filtros aos itens. Vamos ver alguns exemplos dessas funções.
Aplicando uma transformação aos itens de um dicionário: map()
Você pode usar a função map()
para aplicar uma transformação a cada item de um dicionário. Veja um exemplo:
Neste exemplo, a função map()
é usada em conjunto com uma lambda function para criar uma nova tupla a partir de cada item do dicionário. Essa nova tupla contém a chave (índice 0) e o valor (índice 1) do item. A nova tupla é usada para criar o novo dicionário squared_dict
, onde cada valor é elevado ao quadrado. O novo dicionário é impresso no console.
Filtrando itens em um dicionário: filter()
Você pode usar a função filter()
para filtrar itens de um dicionário com base em uma condição. Veja um exemplo:
Neste exemplo, a função filter()
é usada em conjunto com uma lambda function para filtrar itens do dicionário com base na condição item[1] > 1
. Essa condição verifica se o valor (índice 1) do item é maior que 1. O novo dicionário filtered_dict
é criado apenas com os itens que atendem à condição e é impresso no console.
Percorrendo múltiplos dicionários como um só
Em Python, você pode percorrer vários dicionários como se fossem um usando as funções ChainMap
e chain()
. Vamos dar uma olhada em cada uma delas.
Iterando através de vários dicionários com ChainMap
A função ChainMap
permite que você percorra vários dicionários como se fossem um só. Veja um exemplo:
Neste exemplo, a função ChainMap
é usada para criar um novo dicionário chained_dict
que combina os dicionários dict1
e dict2
. O loop for
itera sobre os itens desse novo dicionário combinado e os imprime no console.
Iterando através de uma cadeia de dicionários com chain()
A função chain()
é usada em conjunto com o operador *
para percorrer uma cadeia de dicionários como se fossem um só. Veja um exemplo:
Neste exemplo, a função chain()
é usada em conjunto com o operador *
para criar uma nova lista chained_dict
que contém os dicionários dict1
e dict2
combinados. O loop for
itera sobre os itens dessa nova lista combinada e os imprime no console.
Iterando sobre dicionários mesclados: O operador de desempacotamento (**)
Python 3.5 introduziu o operador de desempacotamento **
, que permite mesclar dicionários de forma concisa. Veja um exemplo:
Neste exemplo, o operador de desempacotamento **
é usado para mesclar os dicionários dict1
e dict2
em um novo dicionário merged_dict
. Os pares chave-valor de cada dicionário são desempacotados e adicionados ao novo dicionário. O novo dicionário é impresso no console.
Conclusão
A iteração através de um dicionário em Python é uma habilidade valiosa que pode ajudar a escrever um código mais eficiente e legível. Neste tutorial, você aprendeu diferentes técnicas para iterar através de um dicionário, desde iterações diretas até o uso de funções integradas e comprehensions. Compreender essas técnicas permitirá que você manipule e processe dados de forma mais eficiente em seus programas Python.
Resumo das principais informações
- Você pode iterar diretamente sobre as chaves de um dicionário usando um loop
for
. - O método
.items()
retorna uma lista de tuplas com pares de chave-valor do dicionário, permitindo que você itere sobre eles. - O método
.keys()
retorna um objeto de visualização das chaves do dicionário que pode ser iterado diretamente. - O método
.values()
retorna um objeto de visualização dos valores do dicionário que pode ser iterado diretamente. - Você pode alterar valores durante a iteração, mas é recomendável evitar a alteração do tamanho do dicionário.
- Ao remover itens durante a iteração, use o método
.popitem()
para remover um item aleatório ou a declaraçãodel
para remover um item específico. - Utilize comprehensions para filtrar, transformar e trocar chaves e valores durante a iteração.
- Python oferece funções integradas como
filter()
emap()
para iterar implicitamente através de dicionários. - Use as funções
ChainMap
echain()
para iterar através de múltiplos dicionários como se fossem um só. - O operador de desempacotamento
**
permite mesclar dicionários concisamente. - Tenha cuidado ao iterar através de um dicionário e garantir que seu código seja eficiente e legível.
Esperamos que este tutorial tenha sido útil para você aprender como iterar através de um dicionário em Python e que você possa aplicar esses conhecimentos em seus próprios projetos Python.