Python - Dicionário
Cada chave é separada de seu valor por dois pontos (:), os itens são separados por vírgulas e tudo é colocado entre chaves. Um dicionário vazio sem nenhum item é escrito com apenas duas chaves, assim:{}.
As chaves são exclusivas em um dicionário, enquanto os valores podem não ser. Os valores de um dicionário podem ser de qualquer tipo, mas as chaves devem ser de um tipo de dados imutável, como strings, números ou tuplas.
Acessando valores no dicionário
Para acessar os elementos do dicionário, você pode usar os familiares colchetes junto com a chave para obter seu valor. A seguir está um exemplo simples -
Demonstração ao vivo
#!/usr/bin/python dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'} print "dict['Name']: ", dict['Name'] print "dict['Age']: ", dict['Age']
Quando o código acima é executado, ele produz o seguinte resultado -
dict['Name']: Zara dict['Age']: 7
Se tentarmos acessar um item de dados com uma chave, que não faz parte do dicionário, obtemos um erro da seguinte forma −
Demonstração ao vivo
#!/usr/bin/python dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'} print "dict['Alice']: ", dict['Alice']
Quando o código acima é executado, ele produz o seguinte resultado -
dict['Alice']: Traceback (most recent call last): File "test.py", line 4, in <module> print "dict['Alice']: ", dict['Alice']; KeyError: 'Alice'
Atualizando o dicionário
Você pode atualizar um dicionário adicionando uma nova entrada ou um par chave-valor, modificando uma entrada existente ou excluindo uma entrada existente conforme mostrado abaixo no exemplo simples −
Demonstração ao vivo
#!/usr/bin/python dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'} dict['Age'] = 8; # update existing entry dict['School'] = "DPS School"; # Add new entry print "dict['Age']: ", dict['Age'] print "dict['School']: ", dict['School']
Quando o código acima é executado, ele produz o seguinte resultado -
dict['Age']: 8 dict['School']: DPS School
Excluir elementos do dicionário
Você pode remover elementos de dicionário individuais ou limpar todo o conteúdo de um dicionário. Você também pode excluir o dicionário inteiro em uma única operação.
Para remover explicitamente um dicionário inteiro, basta usar o del declaração. A seguir está um exemplo simples -
Demonstração ao vivo
#!/usr/bin/python dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'} del dict['Name']; # remove entry with key 'Name' dict.clear(); # remove all entries in dict del dict ; # delete entire dictionary print "dict['Age']: ", dict['Age'] print "dict['School']: ", dict['School']
Isso produz o seguinte resultado. Observe que uma exceção é gerada porque após del dict dicionário não existe mais -
dict['Age']: Traceback (most recent call last): File "test.py", line 8, in <module> print "dict['Age']: ", dict['Age']; TypeError: 'type' object is unsubscriptable
Observação − o método del() é discutido na seção subsequente.
Propriedades das chaves do dicionário
Os valores do dicionário não têm restrições. Eles podem ser qualquer objeto Python arbitrário, objetos padrão ou objetos definidos pelo usuário. No entanto, o mesmo não é verdade para as chaves.
Há dois pontos importantes a serem lembrados sobre as chaves do dicionário -
(a) Não é permitido mais de uma entrada por chave. O que significa que nenhuma chave duplicada é permitida. Quando chaves duplicadas são encontradas durante a atribuição, a última atribuição vence. Por exemplo -
Demonstração ao vivo
#!/usr/bin/python dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'} print "dict['Name']: ", dict['Name']
Quando o código acima é executado, ele produz o seguinte resultado -
dict['Name']: Manni
(b) As chaves devem ser imutáveis. O que significa que você pode usar strings, números ou tuplas como chaves de dicionário, mas algo como ['key'] não é permitido. A seguir está um exemplo simples -
Demonstração ao vivo
#!/usr/bin/python dict = {['Name']: 'Zara', 'Age': 7} print "dict['Name']: ", dict['Name']
Quando o código acima é executado, ele produz o seguinte resultado -
Traceback (most recent call last): File "test.py", line 3, in <module> dict = {['Name']: 'Zara', 'Age': 7}; TypeError: unhashable type: 'list'
Funções e métodos de dicionário integrados
Python inclui as seguintes funções de dicionário -
Nº Sr. | Função com descrição |
---|---|
1 | cmp(dict1, dict2) Compara elementos de ambos dict. |
2 | len(dict) Dá o comprimento total do dicionário. Isso seria igual ao número de itens no dicionário. |
3 | str(dict) Produz uma representação de string imprimível de um dicionário |
4 | tipo(variável) Retorna o tipo da variável passada. Se a variável passada for um dicionário, ela retornará um tipo de dicionário. |
Python inclui os seguintes métodos de dicionário -
Nº Sr. | Métodos com descrição |
---|---|
1 | dict.clear() Remove todos os elementos do dicionário dict |
2 | dict.copy() Retorna uma cópia superficial do dicionário dict |
3 | dict.fromkeys() Crie um novo dicionário com chaves de seq e valores set para valor . |
4 | dict.get(chave, default=Nenhum) Para chave key, retorna valor ou padrão se a chave não estiver no dicionário |
5 | dict.has_key(chave) Retorna verdadeiro if key no dicionário dict , falso por outro lado |
6 | dict.items() Retorna uma lista de dict 's (chave, valor) pares de tuplas |
7 | dict.keys() Retorna a lista de chaves do dicionário dict |
8 | dict.setdefault(chave, default=Nenhum) Semelhante a get(), mas definirá dict[key]=default se key ainda não está em dict |
9 | dict.update(dict2) Adiciona o dicionário dict2 pares de valores-chave para dict |
10 | dict.values() Retorna a lista do dicionário dict valores de |
python