Python 3 - Dicionário

Cada chave é separada de seu valor por dois pontos (:), os itens são separados por vírgulas e tudo está entre colchetes. 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 -

#!/usr/bin/python3

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, obteremos o seguinte erro -

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
print ("dict['Alice']: ", dict['Alice'])

Quando o código acima é executado, ele produz o seguinte resultado -

dict['Zara']:
Traceback (most recent call last):
   File "test.py", line 4, in <module>
      print "dict['Alice']: ", dict['Alice'];
KeyError: 'Alice'

Atualizando Dicionário

Você pode atualizar um dicionário adicionando uma nova entrada ou um par de valores-chave, modificando uma entrada existente ou excluindo uma entrada existente, conforme mostrado em um exemplo simples fornecido abaixo.

#!/usr/bin/python3

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 individuais do dicionário 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 deldeclaração. A seguir está um exemplo simples -

#!/usr/bin/python3

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.

Uma exceção é levantada porque após del dict, o 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

Note - 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, tanto objetos padrão quanto objetos definidos pelo usuário. No entanto, o mesmo não é verdade para as chaves.

Existem dois pontos importantes a serem lembrados sobre as chaves do dicionário -

(a)Não é permitida mais de uma entrada por chave. Isso significa que nenhuma chave duplicada é permitida. Quando chaves duplicadas são encontradas durante a atribuição, a última atribuição vence. Por exemplo -

#!/usr/bin/python3

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. Isso significa que você pode usar strings, números ou tuplas como chaves de dicionário, mas algo como ['chave'] não é permitido. A seguir está um exemplo simples -

#!/usr/bin/python3

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: list objects are unhashable

Funções e métodos de dicionário integrados

Python inclui as seguintes funções de dicionário -

Sr. Não. Descrição da função
1 cmp (dict1, dict2)

Não está mais disponível no Python 3.

2 len (dict)

Fornece 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 para impressão 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 -

Sr. Não. Método e 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 as chaves de seq e os valores definidos como valor .

4 dict.get (chave, padrão = Nenhum)

Para a chave da chave, retorna o valor ou padrão se a chave não estiver no dicionário

5 dict.has_key (chave)

Removido, use a operação em vez disso.

6 dict.items ()

Retorna uma lista de pares de tupla de dict (chave, valor)

7 dict.keys ()

Retorna a lista das chaves do dicionário

8 dict.setdefault (chave, padrão = Nenhum)

Semelhante a get (), mas irá definir dict [key] = default se a chave ainda não estiver em dict

9 dict.update (dict2)

Adiciona pares de valores-chave do dicionário dict2 a dict

10 dict.values ​​()

Retorna a lista de dicionário dict valores 's