Iterando sobre dicionários em Python

Ana Maria Gomes
4 minutos de leitura

Conteúdos do tutorial

Ao trabalhar com dicionários em Python, uma tarefa comum é iterar pelos itens do dicionário. Um dicionário é uma coleção de pares chave-valor, e Python oferece uma maneira simples e intuitiva de percorrer esses pares usando um laço ‘for‘. Mas como o Python sabe iterar sobre as chaves, e o que exatamente está acontecendo nos bastidores? Vamos entender o processo.

Entendendo a Iteração sobre Dicionários

Em Python, quando você usa um laço ‘for’ com um dicionário, na verdade está iterando sobre suas chaves por padrão. Aqui está um exemplo simples:

d = {'x': 1, 'y': 2, 'z': 3}

for chave in d:
    print(chave, 'corresponde a', d[chave])
Testar

Neste trecho, chave não é uma palavra-chave especial; é apenas um nome de variável que representa a chave atual no laço. O laço for chave in d: irá iterar sobre as chaves do dicionário d, permitindo que você acesse o valor correspondente com d[chave].

Iterando Sobre Chaves e Valores

Se você quiser iterar sobre chaves e valores, Python fornece um método chamado items() que retorna uma visão iterável dos pares chave-valor do dicionário. Veja como você pode usá-lo:

d = {'x': 1, 'y': 2, 'z': 3}
for chave, valor in d.items():
    print(chave, 'corresponde a', valor)
Testar

Isso exibirá cada par chave-valor no dicionário. Note que em Python 2.x, você usaria d.iteritems() em vez de d.items(), mas em Python 3.x, iteritems() foi substituído por items().

Iteração nos Bastidores

Dicionários em Python implementam o protocolo de iterador, que é uma maneira elegante de dizer que dicionários são projetados para serem percorridos em laços. Isso é feito de forma eficiente no nível C, como detalhado na PEP 234. Quando você escreve for k in dict:, é uma abreviação para for k in dict.iterkeys() em Python 2.x. No entanto, em Python 3.x, dict.iterkeys(), dict.itervalues() e dict.iteritems() não estão mais disponíveis, e você deve usar dict.keys(), dict.values() e dict.items() em vez disso.

Melhores Práticas para Iteração de Dicionários

Ao iterar sobre um dicionário, é comum usar k e v como nomes de variáveis para chaves e valores, respectivamente. No entanto, para laços mais complexos, é aconselhável usar nomes de variáveis mais descritivos. Além disso, usar strings de formatação pode tornar seu código mais limpo e legível:

d = {'x': 1, 'y': 2, 'z': 3}
for letra, numero in d.items():
    print('{0} corresponde a {1}'.format(letra, numero))
Testar

Resumo

Em resumo, ao iterar sobre um dicionário em Python usando um laço ‘for’, você está, por padrão, iterando sobre as chaves do dicionário. O nome da variável usada no laço não é especial e pode ser nomeado de qualquer forma. Para iterar sobre chaves e valores, use o método items(). Lembre-se de que dicionários são projetados para serem iterados de forma eficiente, e usar nomes de variáveis descritivos e strings de formatação pode melhorar a legibilidade do seu código.

Inscreva-se gratuitamente e fique atualizado

Receba toda semana um resumo dos principais conteúdos da Asimov direto no seu e-mail. 100% livre de spam.

Áreas de interesse:
Conteúdos do tutorial