Dicionários do Python

Resumo: neste tutorial, você aprenderá sobre os dicionários do python, que permite organizar informações relacionadas.

Introdução ao tipo de dados dicionário do Python

Um dicionário do Python é uma coleção de pares chave-valor onde cada chave está associada a um valor.

Um valor no par chave-valor pode ser um número, uma string, uma lista, uma tupla ou até mesmo outro dicionário. Na verdade, você pode usar um valor de qualquer tipo válido em Python como valor no par chave-valor.

Uma chave no par chave-valor deve ser imutável. Em outras palavras, a chave não pode ser alterada, por exemplo, um número, uma string, uma tupla, etc.

Python usa chaves {} para definir um dicionário. Dentro das chaves, você pode colocar zero, um ou muitos pares chave-valor.

O exemplo a seguir define um dicionário vazio:

empty_dict = {}

Normalmente, você define um dicionário vazio antes de um loop, loop for ou loop while. E dentro do loop, você adiciona pares chave-valor ao dicionário.

Para encontrar o tipo de um dicionário, você usa a função type() da seguinte forma:

empty_dict = {}

print(type(empty_dict))

Saída:

<class 'dict'>

O exemplo a seguir define um dicionário com alguns pares chave-valor:

person = {
    'first_name': 'John',
    'last_name': 'Doe',
    'age': 25,
    'favorite_colors': ['blue', 'green'],
    'active': True
}

O dicionário person tem cinco pares chave-valor que representam o nome, sobrenome, idade, cores favoritas e status ativo.

Acessando valores em um dicionário

Para acessar um valor por chave de um dicionário, você pode usar a notação de colchetes ou o método get().

1) Usando a notação de colchetes

Para acessar um valor associado a uma chave, você coloca a chave entre colchetes:

dict[key]

Veja a seguir como obter os valores associados à chave first_name e last_name no dicionário person:

person = {
    'first_name': 'John',
    'last_name': 'Doe',
    'age': 25,
    'favorite_colors': ['blue', 'green'],
    'active': True
}
print(person['first_name'])
print(person['last_name'])

Saída:

John
Doe

2) Usando o método get()

Se você tentar acessar uma chave que não existe, receberá um erro. Por exemplo:

person = {
    'first_name': 'John',
    'last_name': 'Doe',
    'age': 25,
    'favorite_colors': ['blue', 'green'],
    'active': True
}

ssn = person['ssn']

Erro:

Traceback (most recent call last):
  File "dictionary.py", line 15, in <module>
    ssn = person['ssn']
KeyError: 'ssn'

Para evitar esse erro, você pode usar o método get() do dicionário:

person = {
    'first_name': 'John',
    'last_name': 'Doe',
    'age': 25,
    'favorite_colors': ['blue', 'green'],
    'active': True
}

ssn = person.get('ssn')
print(ssn)

Saída:

None

Se a chave não existir, o método get() retorna None em vez de lançar um KeyError. Observe que None significa que nenhum valor existe.

O método get() também retorna um valor padrão quando a chave não existe, passando o valor padrão para seu segundo argumento.

O exemplo a seguir retorna a string '000-00-0000' se a chave ssn não existir no dicionário person:

person = {
    'first_name': 'John',
    'last_name': 'Doe',
    'age': 25,
    'favorite_colors': ['blue', 'green'],
    'active': True
}

ssn = person.get('ssn', '000-00-0000')
print(ssn)

Saída:

000-00-0000

Adicionando novos pares chave-valor

Como um dicionário tem uma estrutura dinâmica, você pode adicionar novos pares chave-valor a ele a qualquer momento.

Para adicionar um novo par chave-valor a um dicionário, você especifica o nome do dicionário seguido pela nova chave entre colchetes junto com o novo valor.

O exemplo a seguir adiciona um novo par chave-valor ao dicionário person:

person['gender'] = 'Famale'

Modificando valores em um par chave-valor

Para modificar um valor associado a uma chave, especifique o nome do dicionário com a chave entre colchetes e o novo valor associado à chave:

dict[key] = new_value

O exemplo a seguir modifica o valor associado a age do dicionário person:

person = {
    'first_name': 'John',
    'last_name': 'Doe',
    'age': 25,
    'favorite_colors': ['blue', 'green'],
    'active': True
}

person['age'] = 26

print(person)

Saída:

{'first_name': 'John', 'last_name': 'Doe', 'age': 26, 'favorite_colors': ['blue', 'green'], 'active': True}

Removendo pares chave-valor

Para remover um par chave-valor por uma chave, você usa a instrução del:

del dict[key]

Nesta sintaxe, você especifica o nome do dicionário e a chave que deseja remover.

O exemplo a seguir remove a chave 'active' do dicionário person:

person = {
    'first_name': 'John',
    'last_name': 'Doe',
    'age': 25,
    'favorite_colors': ['blue', 'green'],
    'active': True
}

del person['active']
print(person)

Saída:

{'first_name': 'John', 'last_name': 'Doe', 'age': 25, 'favorite_colors': ['blue', 'green']}

Percorrendo um dicionário

Para examinar um dicionário, você pode usar um loop for para iterar sobre seus pares chave-valor, ou chaves, ou valores.

Observe que, desde o Python 3.7, quando você percorre um dicionário, obtém os pares chave-valor na mesma ordem em que os insere.

1) Repetir todos os pares chave-valor em um dicionário

O dicionário Python fornece um método chamado items() que retorna um objeto que contém uma lista de pares chave-valor como tuplas em uma lista.

Por exemplo:

person = {
    'first_name': 'John',
    'last_name': 'Doe',
    'age': 25,
    'favorite_colors': ['blue', 'green'],
    'active': True
}

print(person.items())

Saída:

dict_items([('first_name', 'John'), ('last_name', 'Doe'), ('age', 25), ('favorite_colors', ['blue', 'green']), ('active', True)])

Para iterar todos os pares chave-valor em um dicionário, você usa um loop for com duas variáveis key e value desempacota cada tupla da lista:

person = {
    'first_name': 'John',
    'last_name': 'Doe',
    'age': 25,
    'favorite_colors': ['blue', 'green'],
    'active': True
}

for key, value in person.items():
    print(f"{key}: {value}")

Saída:

first_name: John
last_name: Doe
age: 25
favorite_colors: ['blue', 'green']
active: True

Observe que você pode usar qualquer nome de variável no loop for. Elas não precisam ser o key e value.

2) Percorrer todas as chaves em um dicionário

Às vezes, você só quer percorrer todas as chaves em um dicionário. Nesse caso, você pode usar um loop for com o método keys().

O método keys() retorna um objeto que contém uma lista de chaves no dicionário.

Por exemplo:


person = {
    'first_name': 'John',
    'last_name': 'Doe',
    'age': 25,
    'favorite_colors': ['blue', 'green'],
    'active': True
}

for key in person.keys():
    print(key)

Saída:

first_name
last_name
age
favorite_colors
active

Na verdade, percorrer todas as chaves é o comportamento padrão ao percorrer um dicionário. Portanto, você não precisa usar o método keys().

O código a seguir retorna a mesma saída do exemplo acima:

person = {
    'first_name': 'John',
    'last_name': 'Doe',
    'age': 25,
    'favorite_colors': ['blue', 'green'],
    'active': True
}

for key in person:
    print(key)

3) Percorrer todos os valores em um dicionário

O método values() retorna uma lista de valores sem nenhuma chave.

Para percorrer todos os valores em um dicionário, você usa um loop for com o método values():

person = {
    'first_name': 'John',
    'last_name': 'Doe',
    'age': 25,
    'favorite_colors': ['blue', 'green'],
    'active': True
}

for value in person.values():
    print(value)

Saída:

John
Doe
25
['blue', 'green']
True

Resumo

  • Um dicionário Python é uma coleção de pares chave-valor, onde cada chave tem um valor associado.
  • Use colchetes ou o método get() para acessar um valor por sua chave.
  • Use a instrução del para remover um par chave-valor pela chave do dicionário.
  • Use o loop for para iterar sobre chaves, valores e pares chave-valor em um dicionário.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *