Subsecções


2.3.5 Dicionários

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".


2.3.5.1 Métodos do Dicionário

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.