Pular para o conteúdo

Iteração de dicionário em Python: Como usar eficientemente?

CodeMDD.io

Como iterar através de um dicionário em Python

Os dicionários são uma das estruturas de dados mais importantes e úteis incorporadas no 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ê aprenderá como iterar através de um dicionário em Python.

Começando com os dicionários Python

Antes de começar a iterar através de um dicionário em Python, é útil entender alguns conceitos básicos sobre os dicionários.

Um dicionário é uma coleção desordenada de pares chave-valor, em que cada chave é única. As chaves são usadas para acessar os valores correspondentes no dicionário. Os dicionários em Python são mutáveis, o que significa que você pode adicionar, remover e alterar os valores associados às chaves.

Veja um exemplo de dicionário em Python:

person = {
"name": "John",
"age": 30,
"city": "New York"
}
print(person)

Saída:

{'name': 'John', 'age': 30, 'city': 'New York'}

Neste exemplo, o dicionário person possui três pares chave-valor: "name": "John", "age": 30 e "city": "New York". A chave "name" tem o valor "John", a chave "age" tem o valor 30 e a chave "city" tem o valor "New York".

Como iterar diretamente através de um dicionário em Python

Para iterar diretamente através dos elementos de um dicionário em Python, você pode usar um laço for juntamente com a função items(). A função items() retorna uma lista de pares chave-valor do dicionário.

Veja um exemplo de iteração direta por um dicionário em Python:

person = {
"name": "John",
"age": 30,
"city": "New York"
}
for key, value in person.items():
print(key, value)

Saída:

name John
age 30
city New York

Neste exemplo, o laço for itera sobre os pares chave-valor do dicionário person. A cada iteração, o laço atribui o valor da chave a variável key e o valor associado a essa chave à variável value. O print exibe o par chave-valor na saída.

Como iterar através das chaves de um dicionário em Python

Se você estiver interessado apenas nas chaves de um dicionário em Python, sem precisar dos valores correspondentes, pode usar o método keys() para iterar apenas pelas chaves.

Veja um exemplo de iteração pelas chaves de um dicionário em Python:

person = {
"name": "John",
"age": 30,
"city": "New York"
}
for key in person.keys():
print(key)

Saída:

name
age
city

Neste exemplo, o laço for itera pelas chaves do dicionário person. A cada iteração, apenas a chave é impressa na saída.

Como iterar através dos valores de um dicionário em Python

Da mesma forma, se você estiver interessado apenas nos valores de um dicionário em Python, pode usar o método values() para iterar apenas pelos valores.

Veja um exemplo de iteração pelos valores de um dicionário em Python:

person = {
"name": "John",
"age": 30,
"city": "New York"
}
for value in person.values():
print(value)

Saída:

John
30
New York

Neste exemplo, o laço for itera pelos valores do dicionário person. A cada iteração, apenas o valor é impresso na saída.

Como alterar valores do dicionário durante a iteração

Normalmente, você não deve alterar um dicionário enquanto itera por ele, pois isso pode levar a comportamentos indesejados. No entanto, se você precisar fazer alterações durante a iteração, uma abordagem segura é criar uma cópia do dicionário antes de iterar e modificar a cópia.

Veja um exemplo de como alterar os valores de um dicionário durante a iteração em Python:

person = {
"name": "John",
"age": 30,
"city": "New York"
}
# Criando uma cópia do dicionário
person_copy = person.copy()
for key, value in person_copy.items():
if key == "name":
person_copy[key] = "Jane"
print(person_copy)

Saída:

{'name': 'Jane', 'age': 30, 'city': 'New York'}

Neste exemplo, criamos uma cópia do dicionário person usando o método copy(). Então, iteramos pela cópia e verificamos se uma chave é igual a "name". Se a chave for igual a "name", alteramos o valor correspondente para "Jane". No final, exibimos o dicionário modificado.

Como remover itens de um dicionário durante a iteração de forma segura

Assim como alterar valores durante a iteração pode ser problemático, remover itens de um dicionário também pode causar comportamentos indesejados. No entanto, se você precisar remover itens durante a iteração, pode fazer uma cópia dos itens e iterar pela cópia em vez do dicionário original.

Veja um exemplo de como remover itens de um dicionário durante a iteração de forma segura em Python:

person = {
"name": "John",
"age": 30,
"city": "New York"
}
# Criando uma cópia dos itens do dicionário
items_copy = list(person.items())
for key, value in items_copy:
if key == "name":
person.pop(key)
print(person)

Saída:

{'age': 30, 'city': 'New York'}

Neste exemplo, criamos uma cópia dos itens do dicionário usando o método items() e convertendo-o em uma lista. Então, iteramos pelos itens da cópia e verificamos se uma chave é igual a "name". Se a chave for igual a "name", removemos o item correspondente usando o método pop(). No final, exibimos o dicionário modificado.

Exemplos de iteração por dicionários usando o laço for

Agora que você aprendeu os conceitos básicos de iteração por dicionários em Python e práticas seguras de alteração e remoção de itens, vamos dar uma olhada em alguns exemplos adicionais de iteração por dicionários usando o laço for.

Filtrando itens pelo seu valor

Você pode filtrar itens de um dicionário com base em seus valores usando uma condicional dentro do laço for.

Veja um exemplo de como filtrar itens de um dicionário com base em seus valores em Python:

person = {
"name": "John",
"age": 30,
"city": "New York"
}
for key, value in person.items():
if value == "John":
print(key, value)

Saída:

name John

Neste exemplo, iteramos pelos itens do dicionário person e, em seguida, verificamos se o valor é igual a "John". Se o valor for igual a "John", exibimos o par chave-valor correspondente.

Executando cálculos com chaves e valores

Durante a iteração de um dicionário, você pode executar cálculos com as chaves ehttps://codemdd.io/ou valores para realizar operações específicas.

Veja um exemplo de como executar cálculos com chaves e valores durante a iteração em Python:

inventory = {
"apple": 10,
"banana": 15,
"orange": 7
}
total_fruits = 0
for fruit, quantity in inventory.items():
total_fruits += quantity
print("Total fruits:", total_fruits)

Saída:

Total fruits: 32

Neste exemplo, iteramos pelos itens do dicionário inventory e, a cada iteração, atualizamos a variável total_fruits somando a quantidade de cada fruta no dicionário. No final, exibimos o total de frutas.

Trocando chaves e valores durante a iteração

Durante a iteração de um dicionário, você também pode trocar as chaves pelos valores e os valores pelas chaves usando uma abordagem de iteração.

Veja um exemplo de como trocar chaves e valores durante a iteração de um dicionário em Python:

person = {
"name": "John",
"age": 30,
"city": "New York"
}
new_person = {}
for key, value in person.items():
new_person[value] = key
print(new_person)

Saída:

{'John': 'name', 30: 'age', 'New York': 'city'}

Neste exemplo, criamos um novo dicionário vazio chamado new_person. Então, iteramos pelos itens do dicionário person e, a cada iteração, atribuímos a chave ao valor e o valor à chave no novo dicionário. No final, exibimos o novo dicionário.

Conclusão

A iteração por dicionários em Python é uma habilidade essencial para qualquer programador da linguagem. Neste tutorial, você aprendeu como iterar diretamente por um dicionário, bem como como iterar por suas chaves e valores usando os métodos items(), keys() e values(). Você também aprendeu como alterar valores e remover itens de um dicionário durante a iteração de forma segura. Além disso, exploramos exemplos adicionais de iteração por dicionários para diferentes cenários. Com o conhecimento adquirido neste tutorial, você estará pronto para escrever código Python mais eficiente e robusto que envolva a iteração de dicionários.