Compreensão do dicionário Python

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

Introdução à compreensão do dicionário Python

Uma compreensão de dicionário permite executar um forloop em um dicionário e fazer algo em cada item, como transformar ou filtrar, e retornar um novo dicionário.

Ao contrário de um forloop, uma compreensão de dicionário oferece uma sintaxe mais expressiva e concisa quando usada corretamente.

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

{key:value for (key,value) in dict.items() if condition}Linguagem de código:  CSS  ( css )

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

Exemplos de compreensão de dicionário Python

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

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

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

stocks = {
    'AAPL': 121,
    'AMZN': 3380,
    'MSFT': 219,
    'BIIB': 280,
    'QDEL': 266,
    'LVGO': 144
}Linguagem de código:  Python  ( python )

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)
Linguagem de código:  Python  ( python )

Saída:

{'AAPL': 123.42, 'AMZN': 3447.6, 'MSFT': 223.38, 'BIIB': 285.6, 'QDEL': 271.32, 'LVGO': 146.88}Linguagem de código:  Sessão Shell  ( shell )

Como funciona.

  • Primeiro, faça um loop nos itens do stocksdicionário
  • Segundo, 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)
Linguagem de código:  Python  ( python )

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

para loop

new_stocks = {}
for symbol, price in stocks.items():
    new_stocks[symbol] = price*1.02
Linguagem de código:  Python  ( python )

compreensão do dicionário

new_stocks = {symbol: price * 1.02 for (symbol, price) in stocks.items()}
Linguagem de código:  Python  ( python )

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

Para selecionar ações cujos preços sejam superiores a 200, você pode usar o seguinte forciclo:

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)
Linguagem de código:  Python  ( python )

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)Linguagem de código:  Python  ( python )

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

para loop

selected_stocks = {}
for symbol, price in stocks.items():
    if price > 200:
        selected_stocks[symbol] = price
Linguagem de código:  Python  ( python )

compreensão do dicionário

selected_stocks = {s: p for (s, p) in stocks.items() if p > 200}
Linguagem de código:  Python  ( python )

Resumo

  • Uma compreensão de dicionário itera sobre itens de um dicionário e permite criar 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 *