W3docs

Dicionários Python: Acessando Itens

Aprenda todas as formas de acessar itens de dicionários Python: notação de colchetes, get(), keys(), values(), items(), teste de pertença e acesso a dicionários aninhados.

Os dicionários Python armazenam dados como pares chave-valor. Saber como recuperar esses valores — e o que acontece quando uma chave está ausente — é a base do trabalho com qualquer dicionário. Este capítulo cobre todas as técnicas padrão de acesso: notação de colchetes, o método .get(), iteração com .keys(), .values() e .items(), e teste de pertença com in.

Notação de Colchetes

A forma mais direta de recuperar um valor é escrever o nome do dicionário seguido da chave entre colchetes.

Acessar um valor do dicionário pela chave

python— editable, runs on the server

Python procura 'Bob' na tabela hash e retorna seu valor em tempo O(1), independentemente de quantas chaves o dicionário contém.

KeyError quando a chave está ausente

Se a chave não existir, Python lança um KeyError e interrompe a execução.

ages = {'Alice': 27, 'Bob': 34, 'Charlie': 45}

print(ages['Dave'])  # KeyError: 'Dave'

Sempre trate esse caso — seja verificando a pertença antes (veja a seção do operador in abaixo) ou usando .get() em vez disso.

O Método .get()

.get(key) retorna o valor de key se ele existir, e None caso contrário — nenhuma exceção é lançada.

Use .get() para acessar com segurança uma chave do dicionário

python— editable, runs on the server

Fornecendo um valor padrão

Passe um segundo argumento para .get() para receber um valor de fallback em vez de None:

colors = {'apple': 'red', 'banana': 'yellow', 'grape': 'purple'}

color = colors.get('orange', 'unknown')
print(color)  # unknown

Esta é a forma idiomática de acessar uma chave que pode ou não estar presente sem envolver seu código em um bloco try/except.

Teste de Pertença com in

Use o operador in para verificar se uma chave existe antes de acessá-la:

ages = {'Alice': 27, 'Bob': 34, 'Charlie': 45}

if 'Alice' in ages:
    print(ages['Alice'])  # 27

print('Dave' in ages)   # False
print('Bob' in ages)    # True

in testa apenas chaves, não valores. Executa em tempo O(1) porque os dicionários são baseados em hash.

Acessando Todas as Chaves, Valores e Itens

Os dicionários Python expõem três objetos de visão que permitem iterar ou inspecionar seu conteúdo sem construir uma lista separada.

.keys() — todas as chaves

colors = {'apple': 'red', 'banana': 'yellow', 'grape': 'purple'}

print(colors.keys())
# dict_keys(['apple', 'banana', 'grape'])

for fruit in colors.keys():
    print(fruit)
# apple
# banana
# grape

.values() — todos os valores

colors = {'apple': 'red', 'banana': 'yellow', 'grape': 'purple'}

print(colors.values())
# dict_values(['red', 'yellow', 'purple'])

for color in colors.values():
    print(color)
# red
# yellow
# purple

.items() — pares chave-valor

.items() retorna cada entrada como uma tupla (key, value). O desempacotamento de tuplas torna esta a visão mais útil para a maioria das tarefas de iteração:

colors = {'apple': 'red', 'banana': 'yellow', 'grape': 'purple'}

for fruit, color in colors.items():
    print(f'{fruit} is {color}')
# apple is red
# banana is yellow
# grape is purple

Os objetos de visão são dinâmicos — refletem o estado atual do dicionário. Se você adicionar ou remover uma chave após criar uma visão, ela será atualizada automaticamente.

Acessando Itens em um Dicionário Aninhado

Quando o valor de um dicionário é em si um dicionário, encadeie colchetes (ou chamadas .get()) para alcançar o valor interno.

Acessar valores em um dicionário aninhado

python— editable, runs on the server

Para acesso mais seguro em múltiplos níveis, encadeie chamadas .get():

title = library.get('book4', {}).get('title', 'Not found')
print(title)  # Not found

Veja o capítulo Dicionários Aninhados para um tratamento mais aprofundado de estruturas de dados com múltiplos níveis.

Escolhendo o Método de Acesso Correto

SituaçãoAbordagem recomendada
A chave tem garantia de existird[key] — claro e rápido
A chave pode estar ausente, None é aceitáveld.get(key)
A chave pode estar ausente, precisa de um fallbackd.get(key, default)
Verificar antes de acessarif key in d: d[key]
Iterar todas as entradasfor k, v in d.items()

O Que Vem a Seguir

Depois de saber como ler valores de um dicionário, os próximos passos naturais são:

Prática

Prática
In Python, which principles are applied to access items from a list or a dictionary?
In Python, which principles are applied to access items from a list or a dictionary?
Was this page helpful?