Dicionário Python (com exemplos)

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)

Artigos interessantes...