Um dicionário representa uma coleção de elementos onde é possível utilizar um índice de qualquer tipo imutável, ao contrário da lista, onde índices são sempre inteiros seqüencialmente atribuídos. É costumeiro usar os termos chave e valor (key/value) para descrever os elementos de um dicionário - a chave é o índice, e o valor, a informação correspondente àquela chave.
Para declarar dicionários, utilizamos o símbolo chaves, separando o índice do valor por dois pontos e separando os pares índice-valor por vírgulas:
>>> refeicoes = {"café" : "café", "almoço" : "macarrão",
... "jantar" : "sopa"}
>>> print refeicoes["almoço"]
macarrao
>>> precos_modelos = {98 : 89, 99 : 119, 2000 : 199}
>>> print precos_modelos[98]
89
Neste exemplo criamos dois dicionários com três elementos cada um. As chaves do dicionário refeicoes são as strings "café", "almoço" e "jantar", e os valores respectivos, as strings "café", "macarrão" e "sopa".
O dicionário também possui alguns métodos notáveis:
>>> precos_modelos.keys()
[99, 98, 2000]
>>> precos_modelos.values()
[119, 89, 199]
# A ordem dos elementos retornados por keys() e
# values() é arbitrária; não confie nela.
>>> precos_modelos.has_key(98)
True
>>> precos_modelos.has_key(97)
False
>>> precos_modelos.update({2000 : 600, 2001: 700})
>>> print precos_modelos
{99: 400, 98: 300, 2001: 700, 2000: 600}
No exemplo acima, observe que a chave 2000 foi atualizada, e 2001, acrescentada.
É possível usar o dicionário como uma estrutura de dados simples, com campos para cada informação a ser armazenada. Por exemplo, para armazenar informação sobre um produto hipotético, com código, descrição e preço:
>>> produto = {"código":771, "desc":"Copo", "preço":10.22}
>>> print produto["código"]
771
>>> print produto["desc"]
Copo
É um padrão comum criar listas de dicionários neste formato, cada ítem na lista correspondendo a um produto em particular.