10 Métodos Úteis de Dicionário Python

Você está procurando aprender a trabalhar com dicionários Python? Este tutorial abordará métodos de dicionário Python para ler, modificar e executar outras operações comuns em dicionários Python.

Começaremos revisando os fundamentos dos dicionários do Python e, em seguida, criaremos um exemplo de dicionário e o modificaremos usando métodos de dicionário do Python.

Vamos começar…

Uma Visão Geral dos Dicionários do Python

Os dicionários são estruturas de dados integradas no Python. Ele permite que você armazene itens em pares chave-valor, definindo uma associação ou mapeamento entre as chaves e os valores.

As chaves em um dicionário devem ser únicas (para que sejam hasháveis). Você pode usar a chave para procurar o valor ou usar métodos integrados (você os aprenderá em breve).

Ao criar um dicionário Python, você pode inicializar todos os pares chave-valor ou inicializar um dicionário vazio e adicionar os pares chave-valor.

>>> dict1 = {'language':'Python','like':True}
>>> type(dict1)
<class 'dict'>

# or we can do the following:

>>> dict1 = {}
>>> dict1['language']='Python'
>>> dict1['like']=True

Métodos do Dicionário Python para Operações Comuns

Observação: para acompanhar os exemplos de código, você precisa ter o Python 3.7 ou uma versão posterior instalada.

Você pode codificar junto em um Python REPL. Ou acompanhe no editor Python on-line do etechpt.com.

>>> person = {'name':'Alice',
...           'city':'Portland',
...           'interest':'Programming',
...           'profession':'Developer'
...           }

Agora que inicializamos um dicionário Python, vamos começar a revisar os vários métodos de dicionário.

Obtenha as chaves do dicionário com keys()

Uma das operações comuns ao trabalhar com um dicionário Python é acessar todas as chaves, valores e pares chave-valor. Para obter as chaves de um dicionário, você pode chamar o método keys() conforme mostrado:

>>> person.keys()
dict_keys(['name', 'city', 'interest', 'profession'])

Obtenha os valores do dicionário com values()

O método values() retorna todos os valores e é útil quando você deseja processar esses valores ainda mais.

  Escolha entre GUI, linha de comando ou ferramentas online

Vamos acessar todos os valores no dicionário pessoa:

>>> person.values()
dict_values(['Alice', 'Portland', 'Programming', 'Developer'])

Obter pares de valor-chave com items()

O método items() retorna uma lista de tuplas de valores-chave. Portanto, chamar esse método no dicionário person retorna uma lista de tuplas de valores-chave:

>>> person.items()
dict_items([('name', 'Alice'), ('city', 'Portland'), ('interest', 'Programming'), 
           ('profession', 'Developer')])

Obtenha uma cópia rasa com copy ()

O método copy() retorna uma cópia rasa de um dicionário Python.

>>> person_cpy = person.copy()

Aqui, person_cpy é uma cópia rasa do dicionário de pessoas. Vamos modificar esta cópia atualizando a chave ‘nome’ para ‘Bob’.

>>> person_cpy['name'] = 'Bob'
>>> person_cpy

Agora, se você examinar o conteúdo do dicionário, verá que o ‘nome’ foi atualizado para ‘Bob’.

{
 'name': 'Bob', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer'
}

No entanto, o dicionário de pessoa original não foi modificado.

>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer'
}

Definir valores padrão com setdefault()

Ao trabalhar com dicionários Python, é comum encontrar a exceção KeyError se a chave não estiver presente no dicionário. Aqui está um exemplo quando tentamos acessar a chave ‘idade’:

>>> person['age']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'age'

Você pode evitar tais erros usando os métodos integrados setdefault() e get() em vez de acessar o valor como acima.

O método setdefault(key) retorna dict[‘key’] se a chave estiver presente no dict.

>>> person.setdefault('name')
'Alice'

Quando a chave não está presente, ele adiciona a chave ao dicionário com o valor padrão Nenhum.

>>> person.setdefault('address')
>>> person

Aqui, a chave ‘endereço’ não está presente no dicionário de pessoas. Mas vemos que ele foi adicionado com o valor padrão Nenhum.

{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': None 
}

Agora podemos definir a chave ‘address’ para algum endereço:

>>> person['address'] = "10, xyz street"
>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street' 
}

Você também pode especificar o valor na chamada do método, conforme mostrado:

>>> person.setdefault('country','USA')
'USA'
>>> person

Como a chave ‘country’ não está originalmente presente no dicionário de pessoas, vemos que ela foi adicionada com ‘USA’ como valor.

{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street', 
 'country': 'USA'
}

Obtenha um valor específico com get()

O método get() retorna o valor correspondente à chave. Ele também aceita opcionalmente outro valor padrão que é retornado se a chave não for encontrada no dicionário.

  Como adicionar a data e hora atuais no Planilhas Google

Quando tentamos acessar o valor da chave ‘name’, obtemos ‘Alice’, pois a chave está presente pessoalmente:

>>> person.get('name')
'Alice'

O dicionário de pessoas não possui uma chave ‘gpa’. Portanto, quando tentamos obter seu valor, não obtemos nada no Python REPL. No entanto, se você imprimir o valor, obterá None.

>>> person.get('gpa')
>>> print(person.get('gpa'))
None

Mas se você fornecer o valor padrão opcional, obteremos esse valor em vez de None.

>>> person.get('gpa','not found')
'not found'

No entanto, o método get() não adiciona a chave ‘gpa’ ao dicionário.

>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street', 
 'country': 'USA'
}

Entendendo setdefault() vs. get()

Embora os métodos setdefault() e get() possam ser usados ​​para lidar com KeyError, vamos resumir as diferenças do que aprendemos:

  • dict.setdefault(key,val) adiciona a chave com val como valor padrão. Se val não for fornecido, a chave será incluída com o valor padrão Nenhum.
  • dict.get(key,val) retorna o valor correspondente à chave do dicionário Python. Se a chave não estiver presente, ele retornará val (se fornecido) ou None — mas não adicionará a chave ao dicionário.

Você também pode usar defaultdict em Python para lidar melhor com KeyErrors.

Atualize o conteúdo do dicionário com update ()

Você pode atualizar um dicionário Python existente usando pares chave-valor de outro dicionário. Você também pode atualizar com o conteúdo de qualquer Python iterável usando o método update().

Vamos definir um dicionário more_details. Em seguida, atualizamos o dicionário person com o conteúdo do dicionário more_details:

>>> more_details = {'hobby':'singing', 'likes':'sweets'}
>>> person.update(more_details)

Na saída abaixo, vemos que as chaves ‘hobby’ e ‘likes’ foram adicionadas ao dicionário de pessoas.

>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street', 
 'country': 'USA', 
 'hobby': 'singing', 
 'likes': 'sweets'
}

Remova o último item adicionado com popitem()

O método de dicionário popitem() pode ser usado para remover o último par chave-valor adicionado.

>>> person.popitem()
('likes', 'sweets')

Como visto, chamar o método popitem() no dicionário person retorna o par chave-valor (‘likes’, ‘sweets’) — o último item adicionado no dicionário.

Ele também remove o par chave-valor. Você pode confirmar isso examinando o conteúdo do dicionário:

>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street', 
 'country': 'USA', 
 'hobby': 'singing'
}

Remova um item de dicionário com pop()

Sabemos que o método do dicionário popitem() remove e retorna o último par chave-valor em um dicionário Python. No entanto, às vezes podemos precisar remover outros itens, além do último par de valor-chave adicionado.

  5 Alternativas do System Center Configuration Manager (SCCM) para patches de desktop e servidor

Para fazer isso, podemos usar o método de dicionário pop() do Python: usar .pop(key) no dicionário retorna o valor correspondente à chave e também remove o par chave-valor do dicionário.

Aqui está um exemplo:

>>> person.pop('hobby')
'singing'

Conforme abrimos o item correspondente à chave ‘hobby’, vemos que ele não está mais presente no dicionário.

>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street', 
 'country': 'USA'
}

Se passarmos uma chave que não existe, nos deparamos com a exceção KeyError, conforme mostrado:

>>> person.pop('age')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'age'

Aqui, nos deparamos com uma exceção KeyError, pois a chave ‘age’ não está presente no dicionário de pessoas.

Ao contrário do método list pop() que remove o último item por padrão, o método Dictionary pop() requer uma chave. Se você não especificar uma chave no método, haverá erros.

>>> person.pop()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: pop expected at least 1 argument, got 0

Excluir todos os itens do dicionário com clear()

Os métodos pop() e popitem() do dicionário removem um par chave-valor por vez. Se você deseja excluir todos os itens de um dicionário, pode usar o método clear().

>>> person.clear()
>>> person
{}

Como visto, chamar o método clear() no dicionário person remove todos os pares chave-valor e o dicionário person agora está vazio.

Resumo dos métodos de dicionário do Python

Aqui está uma rápida revisão dos métodos de dicionário do Python que aprendemos.

MethodSyntaxDescriptionkeys()dict1.keys()Retorna as chaves de dict1values()dict1.values()Retorna os valores de dict1items()dict1.items()Retorna uma lista de todos os pares chave-valor em dict1copy()dict1.copy() Retorna uma cópia superficial de dict1setdefault()dict1.setdefault(key, default_value)– Adiciona a chave com o default_value opcional como a chave para dict1 (quando não especificado, o valor padrão é Nenhum)
– Retorna dict1[key] se a chave já estiver presenteget()dict1.get(key,default_value)– Retorna dict1[key] se a chave estiver presente no dict1; Caso contrário, retorna o default_value
– Se a chave não estiver presente em dict1 e default_value não for especificado, retorna Noneupdate()dict1.update(iterable1)Atualiza dict1 com pares chave-valor de iterable1popitem()dict1.popitem()Remove e retorna o último par chave-valor de dict1pop()dict1.pop(key)– Remove e retorna o valor correspondente à chave: dict1[key]
– Gera um KeyError se a chave não estiver presente em dict1clear()dict1.clear()Exclui todos os itens de dict1

Conclusão

Você aprendeu a usar métodos comuns para realizar operações de leitura, atualização e exclusão em dicionários Python. Além disso, você também aprendeu como os métodos get() e setdefault() podem ser usados ​​para lidar com exceções KeyError retornando um valor padrão e adicionando uma entrada com um valor padrão ao dicionário Python, respectivamente. Você também pode classificar um dicionário Python por chave ou por valor.

Em seguida, verifique a lista de métodos de lista Python úteis. Codificação feliz!