반응형
이 자습서에서는 사전의 항목을 변환하거나 필터링하는 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
반응형
'Programing > Python' 카테고리의 다른 글
Python Set Comprehension 사용하기 (0) | 2023.03.13 |
---|---|
Python Set: 집합 자료형 사용방법 (0) | 2023.03.10 |
Python Dictionary 사용방법? (0) | 2023.03.09 |
Python List Comprehensions: 파이썬 List 이해하기 (0) | 2023.03.09 |
Python Reduce() 사용 방법? (0) | 2023.03.08 |
댓글