본문 바로가기
Programing/Python

Python Dictionary Comprehension 사용 방법

by 멍멍돌이야 2023. 3. 10.
반응형

이 자습서에서는 사전의 항목을 변환하거나 필터링하는 Python 사전 이해에 대해 배웁니다.

 

1. Python dictionary comprehension 소개

사전 이해를 사용하면 사전에서 for 루프를 실행하고 변환 또는 필터링과 같은 각 항목에 대해 작업을 수행하고 새 사전을 반환할 수 있습니다.

for 루프와 달리 사전 이해는 올바르게 사용할 때 더 표현적이고 간결한 구문을 제공합니다.

다음은 사전 이해를 위한 일반적인 구문입니다.

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

이 사전 이해 표현식은 표현식 key: value로 항목이 지정된 새 사전을 반환합니다.

 

2. Python dictionary comprehension 사용방법

사전 이해를 사용하여 사전의 항목을 변환하고 필터링하는 방법을 살펴보겠습니다.

 

1) comprehension 사용하여 dictionary 변환처리

항목이 주식 기호와 가격인 다음 사전이 있다고 가정합니다.

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

각 주식의 가격을 2%씩 올리려면 다음과 같은 for 루프를 사용할 수 있습니다.

 

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)

Output:

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

작동 방식:

  • 먼저 주식 사전의 항목을 반복합니다.
  • 둘째, 가격을 2% 올리고 새 사전(new_stocks)에 항목을 추가합니다.
         

다음 예는 동일한 결과를 얻기 위해 사전 이해를 사용하는 방법을 보여줍니다.

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)

이 사전 이해는 for 루프 대응 항목과 동일합니다.

 

for loop

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

 

dictionary comprehension

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

 

2) dictionary comprehension 사용한 필터링

가격이 200보다 큰 주식을 선택하려면 다음 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)

작동 방식:

  • 먼저 주식 사전의 항목을 반복합니다.
  • 그런 다음 가격이 200보다 큰 경우 selected_stocks 사전에 항목을 추가합니다.
         

다음 예제에서는 if 절과 함께 사전 이해를 사용하여 동일한 결과를 얻습니다.

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)

그리고 for 루프와 사전 이해를 비교할 수 있습니다.

 

for loop

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

dictionary comprehension

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

 

3. Summary

  • 사전 이해는 사전의 항목을 반복하며 각 항목을 변환하거나 필터링하여 새 사전을 만들 수 있습니다.

 

 

refreance:https://www.pythontutorial.net/python-basics/python-dictionary-comprehension/

 

728x90
반응형

댓글