# Dicionários em Python Dicionários (DICT) em Python são coleções **não ordenadas** de pares **chave-valor**. Cada chave em um dicionário é única e está associada a um valor correspondente. Pense neles como um dicionário do mundo real, onde cada palavra (chave) tem sua definição (valor). ## Definição e Criação Dicionários são criados usando chaves `{}` com pares chave-valor separados por dois pontos `:`. Os pares são separados por vírgulas. **Exemplo:** ```python # Definindo um Dicionário Casas = {"Harry": "Grifinória", "Draco": "Sonserina"} print(Casas) # Saída: {'Harry': 'Grifinória', 'Draco': 'Sonserina'} # Acessando um valor pela chave print(Casas["Harry"]) # Saída: Grifinória # Adicionando um novo par chave-valor Casas["Hermione"] = "Grifinória" print(Casas) # Saída: {'Harry': 'Grifinória', 'Draco': 'Sonserina', 'Hermione': 'Grifinória'} # Dicionários são mutáveis, permitindo a alteração de valores Casas["Draco"] = "Sonserina (Puro-sangue)" print(Casas) # Saída: {'Harry': 'Grifinória', 'Draco': 'Sonserina (Puro-sangue)', 'Hermione': 'Grifinória'} ``` ## Características Importantes * **Chaves Únicas:** Cada chave em um dicionário deve ser única. Se você tentar adicionar uma chave que já existe, o valor associado a essa chave será atualizado. * **Chaves Imutáveis:** As chaves de um dicionário devem ser de tipos de dados imutáveis (como strings, números, tuplas). Listas não podem ser usadas como chaves. * **Valores Mutáveis:** Os valores associados às chaves podem ser de qualquer tipo de dado e podem ser mutáveis ou imutáveis. * **Não Ordenados (em versões anteriores ao Python 3.7):** Em versões do Python anteriores à 3.7, a ordem dos itens em um dicionário não era garantida. A partir do Python 3.7, os dicionários mantêm a ordem de inserção. ## Métodos Úteis de Dicionários * `keys()`: Retorna uma visualização (view) das chaves do dicionário. * `values()`: Retorna uma visualização das valores do dicionário. * `items()`: Retorna uma visualização dos pares chave-valor (tuplas) do dicionário. * `get(key, default=None)`: Retorna o valor para a `key` especificada. Se a `key` não for encontrada, retorna `default` (que é `None` por padrão), em vez de gerar um `KeyError`. * `pop(key, default=None)`: Remove o item com a `key` especificada e retorna seu valor. Se a `key` não for encontrada, retorna `default`. * `popitem()`: Remove e retorna um par chave-valor arbitrário (em versões anteriores ao Python 3.7) ou o último par inserido (a partir do Python 3.7). * `update(other_dict)`: Atualiza o dicionário com os pares chave-valor de `other_dict`, sobrescrevendo chaves existentes. * `len(d)`: Retorna o número de itens (pares chave-valor) no dicionário. **Exemplos de Métodos:** ```python Casas = {"Harry": "Grifinória", "Draco": "Sonserina", "Hermione": "Grifinória"} # Obter chaves print(Casas.keys()) # Saída: dict_keys(['Harry', 'Draco', 'Hermione']) # Obter valores print(Casas.values()) # Saída: dict_values(['Grifinória', 'Sonserina', 'Grifinória']) # Obter itens (pares chave-valor) print(Casas.items()) # Saída: dict_items([('Harry', 'Grifinória'), ('Draco', 'Sonserina'), ('Hermione', 'Grifinória')]) # Usando get() print(Casas.get("Harry")) # Saída: Grifinória print(Casas.get("Rony", "Não encontrado")) # Retorna o valor padrão se a chave não existir # Saída: Não encontrado # Usando pop() valor_removido = Casas.pop("Draco") print(f"Valor removido: {valor_removido}") print(f"Dicionário após pop: {Casas}") # Saída: # Valor removido: Sonserina # Dicionário após pop: {'Harry': 'Grifinória', 'Hermione': 'Grifinória'} # Usando popitem() ultimo_item = Casas.popitem() print(f"Último item removido: {ultimo_item}") print(f"Dicionário após popitem: {Casas}") # Saída (a ordem pode variar em versões < 3.7): # Último item removido: ('Hermione', 'Grifinória') # Dicionário após popitem: {'Harry': 'Grifinória'} # Usando update() novos_dados = {"Rony": "Grifinória", "Gina": "Grifinória"} Casas.update(novos_dados) print(f"Dicionário após update: {Casas}") # Saída: {'Harry': 'Grifinória', 'Rony': 'Grifinória', 'Gina': 'Grifinória'} # Usando len() print(f"Número de itens: {len(Casas)}") # Saída: Número de itens: 3 ``` ## Quando Usar Dicionários? Dicionários são extremamente úteis quando você precisa: * Associar informações relacionadas (como um nome a um número de telefone, um ID a um registro de usuário). * Acessar dados rapidamente usando uma chave identificadora. * Representar estruturas de dados onde a ordem não é o fator principal, mas sim a relação entre os dados. --- **:: Referência::** [Python Documentation on Native Types](https://docs.python.org/3/library/stdtypes.html)