Neste tutorial, você aprenderá tudo sobre os dicionários Python; como eles são criados, acessando, adicionando, removendo elementos deles e vários métodos embutidos.
Vídeo: dicionários Python para armazenar pares de chave / valor
O dicionário Python é uma coleção não ordenada de itens. Cada item de um dicionário possui um key/valuepar.
Os dicionários são otimizados para recuperar valores quando a chave é conhecida.
Criação de dicionário Python
Criar um dicionário é tão simples quanto colocar os itens entre chaves ()separados por vírgulas.
Um item possui um keye um correspondente valueque é expresso como um par ( chave: valor ).
Embora os valores possam ser de qualquer tipo de dados e possam ser repetidos, as chaves devem ser do tipo imutável (string, número ou tupla com elementos imutáveis) e devem ser exclusivas.
 # empty dictionary my_dict = () # dictionary with integer keys my_dict = (1: 'apple', 2: 'ball') # dictionary with mixed keys my_dict = ('name': 'John', 1: (2, 4, 3)) # using dict() my_dict = dict((1:'apple', 2:'ball')) # from sequence having each item as a pair my_dict = dict(((1,'apple'), (2,'ball')))
Como você pode ver acima, também podemos criar um dicionário usando a dict()função integrada.
Acessando Elementos do Dicionário
Enquanto a indexação é usada com outros tipos de dados para acessar valores, um dicionário usa keys. As chaves podem ser usadas dentro de colchetes ()ou com o get()método.
Se usarmos colchetes (), KeyErroré elevado caso uma chave não seja encontrada no dicionário. Por outro lado, o get()método retorna Nonese a chave não for encontrada.
 # get vs () for retrieving elements my_dict = ('name': 'Jack', 'age': 26) # Output: Jack print(my_dict('name')) # Output: 26 print(my_dict.get('age')) # Trying to access keys which doesn't exist throws error # Output None print(my_dict.get('address')) # KeyError print(my_dict('address'))
Resultado
 Jack 26 Nenhum Traceback (última chamada mais recente): Arquivo "", linha 15, impresso (my_dict ('address')) KeyError: 'address' 
Alterar e adicionar elementos de dicionário
Os dicionários são mutáveis. Podemos adicionar novos itens ou alterar o valor de itens existentes usando um operador de atribuição.
Se a chave já estiver presente, o valor existente será atualizado. Caso a chave não esteja presente, um novo par ( chave: valor ) é adicionado ao dicionário.
 # Changing and adding Dictionary Elements my_dict = ('name': 'Jack', 'age': 26) # update value my_dict('age') = 27 #Output: ('age': 27, 'name': 'Jack') print(my_dict) # add item my_dict('address') = 'Downtown' # Output: ('address': 'Downtown', 'age': 27, 'name': 'Jack') print(my_dict)
Resultado
 ('nome': 'Jack', 'idade': 27) ('nome': 'Jack', 'idade': 27, 'endereço': 'Centro') 
Removendo elementos do dicionário
Podemos remover um item específico de um dicionário usando o pop()método. Este método remove um item com o fornecido keye retorna o value.
O popitem()método pode ser usado para remover e retornar um (key, value)par de itens arbitrários do dicionário. Todos os itens podem ser removidos de uma vez, usando o clear()método.
Também podemos usar a delpalavra-chave para remover itens individuais ou o próprio dicionário inteiro.
 # Removing elements from a dictionary # create a dictionary squares = (1: 1, 2: 4, 3: 9, 4: 16, 5: 25) # remove a particular item, returns its value # Output: 16 print(squares.pop(4)) # Output: (1: 1, 2: 4, 3: 9, 5: 25) print(squares) # remove an arbitrary item, return (key,value) # Output: (5, 25) print(squares.popitem()) # Output: (1: 1, 2: 4, 3: 9) print(squares) # remove all items squares.clear() # Output: () print(squares) # delete the dictionary itself del squares # Throws Error print(squares)
Resultado
16 (1: 1, 2: 4, 3: 9, 5: 25) (5, 25) (1: 1, 2: 4, 3: 9) () Traceback (última chamada mais recente): Arquivo "", linha 30, na impressão (quadrados) NameError: nome 'quadrados' não está definido
Métodos de dicionário Python
Os métodos disponíveis com um dicionário estão tabulados a seguir. Alguns deles já foram usados nos exemplos acima.
| Método | Descrição | 
|---|---|
| Claro() | Remove todos os itens do dicionário. | 
| cópia de() | Retorna uma cópia superficial do dicionário. | 
| fromkeys (seq (, v)) | Retorna um novo dicionário com chaves de seq e valor igual av (o padrão é None). |  
| obter (chave (, d)) | Retorna o valor da chave. Se a chave não existir, retorna d (o padrão é None). |  
| Itens() | Retorna um novo objeto dos itens do dicionário no formato (chave, valor). | 
| chaves() | Retorna um novo objeto das chaves do dicionário. | 
| pop (chave (, d)) | Remove o item com a chave e retorna seu valor ou d se a chave não for encontrada. Se d não for fornecido e a chave não for encontrada, ele será gerado KeyError. |  
| popitem () | Remove e retorna um item arbitrário ( chave, valor ). Gera KeyErrorse o dicionário estiver vazio. |  
| setdefault (chave (, d)) | Retorna o valor correspondente se a chave estiver no dicionário. Caso contrário, insere a chave com um valor de d e retorna d (o padrão é None). |  
| atualização ((outro)) | Atualiza o dicionário com os pares de chave / valor de outro, sobrescrevendo as chaves existentes. | 
| valores () | Retorna um novo objeto de valores do dicionário | 
Aqui estão alguns exemplos de casos de uso desses métodos.
 # Dictionary Methods marks = ().fromkeys(('Math', 'English', 'Science'), 0) # Output: ('English': 0, 'Math': 0, 'Science': 0) print(marks) for item in marks.items(): print(item) # Output: ('English', 'Math', 'Science') print(list(sorted(marks.keys())))
Resultado
 ('Matemática': 0, 'Inglês': 0, 'Ciências': 0) ('Matemática', 0) ('Inglês', 0) ('Ciências', 0) ('Inglês', 'Matemática', ' Ciência') 
Compreensão do dicionário Python
A compreensão de dicionário é uma maneira elegante e concisa de criar um novo dicionário a partir de um iterável em Python.
A compreensão do dicionário consiste em um par de expressões ( chave: valor ) seguido por uma fordeclaração entre chaves ().
Aqui está um exemplo para fazer um dicionário com cada item sendo um par de um número e seu quadrado.
 # Dictionary Comprehension squares = (x: x*x for x in range(6)) print(squares)
Resultado
(0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25)
Este código é equivalente a
 squares = () for x in range(6): squares(x) = x*x print(squares)
Resultado
(0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25)
A dictionary comprehension can optionally contain more for or if statements.
An optional if statement can filter out items to form the new dictionary.
Here are some examples to make a dictionary with only odd items.
 # Dictionary Comprehension with if conditional odd_squares = (x: x*x for x in range(11) if x % 2 == 1) print(odd_squares)
Output
(1: 1, 3: 9, 5: 25, 7: 49, 9: 81)
To learn more dictionary comprehensions, visit Python Dictionary Comprehension.
Other Dictionary Operations
Dictionary Membership Test
We can test if a key is in a dictionary or not using the keyword in. Notice that the membership test is only for the keys and not for the values.
 # Membership Test for Dictionary Keys squares = (1: 1, 3: 9, 5: 25, 7: 49, 9: 81) # Output: True print(1 in squares) # Output: True print(2 not in squares) # membership tests for key only not value # Output: False print(49 in squares)
Output
True True False
Iterating Through a Dictionary
We can iterate through each key in a dictionary using a for loop.
 # Iterating through a Dictionary squares = (1: 1, 3: 9, 5: 25, 7: 49, 9: 81) for i in squares: print(squares(i))
Output
1 9 25 49 81
Dictionary Built-in Functions
Built-in funções gosto all(), any(), len(), cmp(), sorted(), etc, são comumente usados com dicionários para executar diferentes tarefas.
| Função | Descrição | 
|---|---|
| todos() | Retorne Truese todas as chaves do dicionário forem True (ou se o dicionário estiver vazio). |  
| qualquer() | Retorne Truese alguma chave do dicionário for verdadeira. Se o dicionário estiver vazio, retorne False. |  
| len () | Retorna o comprimento (o número de itens) no dicionário. | 
| cmp () | Compara itens de dois dicionários. (Não disponível em Python 3) | 
| classificado () | Retorna uma nova lista classificada de chaves no dicionário. | 
Aqui estão alguns exemplos que usam funções integradas para trabalhar com um dicionário.
 # Dictionary Built-in Functions squares = (0: 0, 1: 1, 3: 9, 5: 25, 7: 49, 9: 81) # Output: False print(all(squares)) # Output: True print(any(squares)) # Output: 6 print(len(squares)) # Output: (0, 1, 3, 5, 7, 9) print(sorted(squares))
Resultado
Falso Verdadeiro 6 (0, 1, 3, 5, 7, 9)








