Gerenciar Dicionários em Python

PythonBeginner
Pratique Agora

Introdução

Neste laboratório, você ganhará experiência prática com dicionários Python, uma estrutura de dados essencial para armazenar dados como pares chave-valor. Você aprenderá a criar e inspecionar dicionários, acessar e modificar seus elementos, adicionar e remover itens e trabalhar com objetos de visualização de dicionário (dictionary view objects). Ao final deste laboratório, você estará apto a realizar operações comuns de dicionário.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 100%. Recebeu uma taxa de avaliações positivas de 100% dos estudantes.

Criar e Inspecionar Dicionários

Neste passo, você aprenderá como criar e inspecionar dicionários. Um dicionário é uma coleção de pares chave-valor onde cada chave deve ser única. Dicionários são criados com chaves {} ou com o construtor dict(). Desde o Python 3.7, os dicionários mantêm a ordem em que os itens foram inseridos.

Primeiro, abra o arquivo main.py no explorador de arquivos no lado esquerdo do editor VS Code.

Adicione o seguinte código ao main.py. Este script demonstra várias maneiras de criar um dicionário.

## Create an empty dictionary using curly braces
empty_dict = {}
print(f"Empty dictionary: {empty_dict}")
print(f"Type of empty_dict: {type(empty_dict)}")

## Create a dictionary with initial key-value pairs
student_info = {'name': 'Alice', 'age': 25, 'major': 'Computer Science'}
print(f"\nStudent info: {student_info}")

## Create a dictionary using the dict() constructor with keyword arguments
student_info_kw = dict(name='Bob', age=22, major='Physics')
print(f"Student info (from keywords): {student_info_kw}")

## Create a dictionary from a list of key-value tuples
student_info_tuples = dict([('name', 'Charlie'), ('age', 28), ('major', 'Chemistry')])
print(f"Student info (from tuples): {student_info_tuples}")

Após adicionar o código, salve o arquivo pressionando Ctrl + S.

Agora, execute o script abrindo um terminal no editor VS Code (Ctrl + ~) e executando o seguinte comando:

python main.py

Você deverá ver a seguinte saída, que mostra os diferentes dicionários que você criou:

Empty dictionary: {}
Type of empty_dict: <class 'dict'>

Student info: {'name': 'Alice', 'age': 25, 'major': 'Computer Science'}
Student info (from keywords): {'name': 'Bob', 'age': 22, 'major': 'Physics'}
Student info (from tuples): {'name': 'Charlie', 'age': 28, 'major': 'Chemistry'}

Este passo ensinou as formas fundamentais de criar dicionários em Python, tanto vazios quanto com dados iniciais.

Acessar e Modificar Elementos do Dicionário

Neste passo, você aprenderá como acessar e modificar elementos dentro de um dicionário. Você pode recuperar um valor referenciando sua chave dentro de colchetes [].

Primeiro, limpe o conteúdo anterior do main.py. Em seguida, adicione o seguinte código ao arquivo. Este script demonstra como acessar e modificar dados do dicionário.

## Define a sample dictionary
student_info = {'name': 'Alice', 'age': 25, 'major': 'Computer Science'}
print(f"Original dictionary: {student_info}")

## Access elements using square brackets
student_name = student_info['name']
print(f"\nStudent Name: {student_name}")

## Using the get() method to access an element
student_age = student_info.get('age')
print(f"Student Age (using get()): {student_age}")

## The get() method can provide a default value if the key is not found
student_city = student_info.get('city', 'Not Specified')
print(f"Student City (with default): {student_city}")

## Modify the value of an existing key
print(f"\nOriginal age: {student_info['age']}")
student_info['age'] = 26
print(f"Modified age: {student_info['age']}")

print(f"\nUpdated dictionary: {student_info}")

Salve o arquivo (Ctrl + S) e execute o script no terminal:

python main.py

A saída mostra como recuperar valores e como o dicionário fica após uma modificação:

Original dictionary: {'name': 'Alice', 'age': 25, 'major': 'Computer Science'}

Student Name: Alice
Student Age (using get()): 25
Student City (with default): Not Specified

Original age: 25
Modified age: 26

Updated dictionary: {'name': 'Alice', 'age': 26, 'major': 'Computer Science'}

Note que usar colchetes [] para acessar uma chave inexistente levantará um KeyError, enquanto get() fornece uma maneira mais segura de acessar chaves que podem não existir.

Adicionar e Excluir Elementos do Dicionário

Este passo abrange a adição de novos elementos a um dicionário e a exclusão dos existentes. Você pode adicionar um novo par chave-valor atribuindo um valor a uma nova chave.

Substitua o conteúdo do main.py pelo código a seguir. Este script demonstra o ciclo de vida completo dos elementos do dicionário: adicionando, atualizando e removendo-os de várias maneiras.

## Define a sample dictionary
student_info = {'name': 'Alice', 'age': 26, 'major': 'Computer Science'}
print(f"Initial dictionary: {student_info}")

## Add a new key-value pair
student_info['city'] = 'New York'
print(f"After adding 'city': {student_info}")

## Delete an element using pop()
## pop() removes the key and returns its value
removed_major = student_info.pop('major')
print(f"\nRemoved major: {removed_major}")
print(f"After pop('major'): {student_info}")

## Delete the last inserted element using popitem()
## popitem() removes and returns the (key, value) pair
removed_item = student_info.popitem()
print(f"\nRemoved item: {removed_item}")
print(f"After popitem(): {student_info}")

## Delete an element using the 'del' statement
del student_info['age']
print(f"\nAfter del student_info['age']: {student_info}")

## The clear() method removes all elements from the dictionary
student_info.clear()
print(f"After clear(): {student_info}")

Salve o arquivo (Ctrl + S) e execute o script:

python main.py

A saída mostrará o dicionário em cada estágio de modificação:

Initial dictionary: {'name': 'Alice', 'age': 26, 'major': 'Computer Science'}
After adding 'city': {'name': 'Alice', 'age': 26, 'major': 'Computer Science', 'city': 'New York'}

Removed major: Computer Science
After pop('major'): {'name': 'Alice', 'age': 26, 'city': 'New York'}

Removed item: ('city', 'New York')
After popitem(): {'name': 'Alice', 'age': 26}

After del student_info['age']: {'name': 'Alice'}
After clear(): {}

Neste passo, você aprendeu como adicionar novos elementos e como removê-los usando pop(), popitem(), del e clear().

Explorar Objetos de Visualização (View Objects) de Dicionário

Neste passo, você explorará os objetos de visualização de dicionário (dictionary view objects). Estes são objetos dinâmicos que fornecem uma visão das chaves, valores ou itens de um dicionário. Quaisquer alterações no dicionário são refletidas imediatamente na visualização.

Substitua o conteúdo do main.py pelo código a seguir:

## Define a sample dictionary
student_info = {'name': 'Alice', 'age': 26, 'major': 'Computer Science'}
print(f"Original dictionary: {student_info}\n")

## Get the view objects
keys_view = student_info.keys()
values_view = student_info.values()
items_view = student_info.items()

print(f"Keys View: {keys_view}")
print(f"Values View: {values_view}")
print(f"Items View: {items_view}")

## Views are dynamic and reflect dictionary changes
print("\n--- Modifying Dictionary ---")
student_info['city'] = 'New York'
print(f"Dictionary after adding 'city': {student_info}")
print(f"Keys View after modification: {keys_view}")
print(f"Values View after modification: {values_view}")

## You can iterate over view objects
print("\n--- Iterating over Keys View ---")
for key in keys_view:
    print(key)

## You can convert views to other data types like lists
keys_list = list(keys_view)
print(f"\nKeys view converted to a list: {keys_list}")

Salve o arquivo (Ctrl + S) e execute o script:

python main.py

A saída demonstra a criação, a natureza dinâmica e a iteração dos objetos de visualização:

Original dictionary: {'name': 'Alice', 'age': 26, 'major': 'Computer Science'}

Keys View: dict_keys(['name', 'age', 'major'])
Values View: dict_values(['Alice', 26, 'Computer Science'])
Items View: dict_items([('name', 'Alice'), ('age', 26), ('major', 'Computer Science')])

--- Modifying Dictionary ---
Dictionary after adding 'city': {'name': 'Alice', 'age': 26, 'major': 'Computer Science', 'city': 'New York'}
Keys View after modification: dict_keys(['name', 'age', 'major', 'city'])
Values View after modification: dict_values(['Alice', 26, 'Computer Science', 'New York'])

--- Iterating over Keys View ---
name
age
major
city

Keys view converted to a list: ['name', 'age', 'major', 'city']

Este passo mostrou como usar keys(), values() e items() para obter visualizações dinâmicas do conteúdo de um dicionário, o que é útil para muitas tarefas de programação.

Resumo

Neste laboratório, você adquiriu experiência prática com dicionários Python. Você começou criando dicionários usando chaves {} e o construtor dict(). Em seguida, aprendeu a acessar e modificar elementos do dicionário usando a notação de colchetes [] e o método get(). Depois, praticou a adição de novos pares chave-valor e sua remoção com vários métodos, incluindo pop(), popitem(), a instrução del e clear(). Por fim, explorou as visualizações dinâmicas de dicionário (keys(), values() e items()), entendendo como elas refletem as alterações no dicionário e como iterar sobre elas.