Como faço para mesclar dois dicionários em Python?

Ana Maria Gomes
4 minutos de leitura

Conteúdos do tutorial

Mesclar dicionários é uma tarefa comum na programação Python, especialmente ao lidar com configurações, ajustes ou simplesmente agregando dados. Neste artigo, exploraremos como mesclar dois dicionários em um novo dicionário em uma única expressão, garantindo que, quando uma chave estiver presente em ambos os dicionários, o valor do segundo dicionário seja mantido.

Mesclando Dicionários no Python 3.9 e Acima

O Python 3.9 introduziu um novo operador que simplifica a mesclagem de dois dicionários. Se você está usando Python 3.9.0 ou superior, pode mesclar os dicionários x e y em um novo dicionário z usando o operador de mesclagem (|):

x = {'a': 1, 'b': 2}
y = {'b': 3, 'c': 4}
z = x | y
print(z)  # Saída: {'a': 1, 'b': 3, 'c': 4}
Testar

Este método é direto e é a maneira preferida de mesclar dicionários nas versões mais recentes do Python.

Mesclando Dicionários no Python 3.5 a 3.8

Para aqueles que usam versões do Python 3.5 a 3.8, a descompactação de dicionários com o operador ** é o caminho a seguir:

x = {'a': 1, 'b': 2}
y = {'b': 3, 'c': 4}
z = {**x, **y}
print(z)  # Saída: {'a': 1, 'b': 3, 'c': 4}
Testar

Esta única expressão cria um novo dicionário z que contém o conteúdo mesclado de x e y.

Mesclando Dicionários no Python 2 ou 3.4 e Abaixo

Se você está trabalhando com uma versão mais antiga do Python, como Python 2 ou Python 3.4 e abaixo, você precisará escrever uma função para mesclar os dicionários:

def merge_two_dicts(x, y):
    z = x.copy()   # começa com as chaves e valores de x
    z.update(y)    # modifica z com as chaves e valores de y
    return z

x = {'a': 1, 'b': 2}
y = {'b': 3, 'c': 4}
z = merge_two_dicts(x, y)
print(z)  # Saída: {'a': 1, 'b': 3, 'c': 4}
Testar

Esta função, merge_two_dicts, cria uma cópia superficial do primeiro dicionário e depois o atualiza com o conteúdo do segundo dicionário.

Resumo

Em resumo, mesclar dois dicionários em Python pode ser feito em uma única expressão usando diferentes métodos, dependendo da versão do Python que você está usando. Para Python 3.9 e acima, use o operador de mesclagem |. Para Python 3.5 a 3.8, use o operador de descompactação **. Para Python 2 ou versões abaixo de 3.5, escreva uma função personalizada para realizar a mesclagem. Cada método garante que os valores do segundo dicionário sobrescrevam aqueles do primeiro quando a mesma chave estiver presente em ambos.

Inscreva-se gratuitamente e fique atualizado

Receba toda semana um resumo dos principais conteúdos da Asimov direto no seu e-mail. 100% livre de spam.

Áreas de interesse:
Conteúdos do tutorial
Tags: