Desempacotando Dicionários com **
Deslize para mostrar o menu
Ao trabalhar com dicionários em Python, o operador ** oferece uma maneira concisa e poderosa de desempacotar seus conteúdos. Desempacotamento com ** permite passar itens de dicionário como argumentos nomeados para funções ou mesclar vários dicionários. Essa técnica é especialmente útil para escrever código flexível e reutilizável que pode lidar com diferentes conjuntos de parâmetros nomeados.
O operador ** recebe um dicionário e expande seus pares chave-valor em argumentos nomeados separados. Isso é comumente utilizado ao chamar funções que aceitam argumentos nomeados, permitindo passar um dicionário diretamente em vez de especificar cada argumento manualmente. Outro uso prático é a fusão de dois ou mais dicionários em um novo, onde todos os pares chave-valor são combinados em um único dicionário.
12345def print_person(name, age): print(f"Name: {name}, Age: {age}") person_info = {"name": "Alice", "age": 28} print_person(**person_info)
Este código demonstra o desempacotamento de dicionários usando o operador **. Ao colocar ** antes de um dicionário em uma chamada de função, o Python "desempacota" os pares chave-valor e os passa como argumentos nomeados individuais. Neste exemplo, print_person(**person_info) é funcionalmente idêntico a escrever print_person(name="Alice", age=28). Para que isso funcione corretamente, as chaves do dicionário devem corresponder exatamente aos nomes dos parâmetros definidos na assinatura da função.
12345defaults = {"color": "blue", "size": "medium"} overrides = {"size": "large", "style": "bold"} merged = {**defaults, **overrides} print(merged)
Aqui você pode ver a Mesclagem de Dicionários. Ao colocar ** dentro de um novo literal de dicionário, o Python expande os pares chave-valor de ambos defaults e overrides em um único objeto.
Quando há chaves sobrepostas – como "size" neste exemplo – o dicionário que aparece depois na sequência tem precedência. Aqui, o valor "large" de overrides substitui "medium" de defaults, resultando em um dicionário mesclado que combina todas as chaves únicas, priorizando os valores mais recentes.
1. Qual é o resultado de usar ** em um dicionário em uma chamada de função?
2. Qual método combina dois dicionários usando unpacking em Python?
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo