Compreensão de dicionários Python

Resumo: neste tutorial, você aprenderá sobre a compreensão de dicionários Python para transformar ou filtrar itens em um dicionário.

Introdução à compreensão de dicionários Python

Uma compreensão de dicionário permite que você execute um loop for em um dicionário e faça algo em cada item, como transformar ou filtrar e retornar um novo dicionário.

Ao contrário de um loop for, uma compreensão de dicionário oferece uma sintaxe mais expressiva e concisa quando você a usa corretamente.

Aqui está a sintaxe geral para a compreensão do dicionário:

{key:value for (key,value) in dict.items() if condition}

Esta expressão de compreensão do dicionário retorna um novo dicionário cujo item especificado pela expressão key: value

Exemplos de compreensão de dicionários Python

Veremos como usar a compreensão do dicionário para transformar e filtrar itens em um dicionário.

1) Usando a compreensão de dicionários Python para transformar um dicionário

Suponha que você tenha o seguinte dicionário cujos itens são símbolo de estoque e preço:

stocks = {
    'AAPL': 121,
    'AMZN': 3380,
    'MSFT': 219,
    'BIIB': 280,
    'QDEL': 266,
    'LVGO': 144
}

Para aumentar o preço de cada ação em 2%, você pode criar um loop for como este:

stocks = {
    'AAPL': 121,
    'AMZN': 3380,
    'MSFT': 219,
    'BIIB': 280,
    'QDEL': 266,
    'LVGO': 144
}

new_stocks = {}
for symbol, price in stocks.items():
    new_stocks[symbol] = price*1.02

print(new_stocks)

Saída:

{'AAPL': 123.42, 'AMZN': 3447.6, 'MSFT': 223.38, 'BIIB': 285.6, 'QDEL': 271.32, 'LVGO': 146.88}

Como funciona.

  • Primeiro, percorra os itens do dicionário stocks
  • Em segundo lugar, aumente o preço em 2% e adicione o item ao novo dicionário (new_stocks).

O exemplo a seguir mostra como usar a compreensão do dicionário para obter o mesmo resultado:

stocks = {
    'AAPL': 121,
    'AMZN': 3380,
    'MSFT': 219,
    'BIIB': 280,
    'QDEL': 266,
    'LVGO': 144
}

new_stocks = {symbol: price * 1.02 for (symbol, price) in stocks.items()}

print(new_stocks)

Essa compreensão do dicionário é equivalente à contraparte do loop for:

2) Usando a compreensão de dicionários Python para filtrar um dicionário

Para selecionar ações cujos preços são maiores que 200, você pode usar o seguinte loop for:

stocks = {
    'AAPL': 121,
    'AMZN': 3380,
    'MSFT': 219,
    'BIIB': 280,
    'QDEL': 266,
    'LVGO': 144
}

selected_stocks = {}
for symbol, price in stocks.items():
    if price > 200:
        selected_stocks[symbol] = price

print(selected_stocks)

Como funciona.

  • Primeiro, itere sobre o item do dicionário de ações
  • Em seguida, adicione o item ao dicionário selected_stocks se o preço for maior que 200

O exemplo a seguir usa a compreensão do dicionário com uma cláusula if para obter o mesmo resultado:

stocks = {
    'AAPL': 121,
    'AMZN': 3380,
    'MSFT': 219,
    'BIIB': 280,
    'QDEL': 266,
    'LVGO': 144
}

selected_stocks = {s: p for (s, p) in stocks.items() if p > 200}

print(selected_stocks)

E você pode comparar o loop for e a compreensão do dicionário:

Resumo

  • Uma compreensão de dicionário itera sobre itens de um dicionário e permite que você crie um novo dicionário transformando ou filtrando cada item.

Deixe um comentário

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