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 |