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 for
loop 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 for
loop, 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
stocks
dicioná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 for
ciclo:
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.