반응형
저번에 python 컴프리헨션 쓰는 이유와 그 중에서도 list 컴프리헨션 사용법에 대해 정리하였다.
아래의 게시글을 참고하자.
2022.05.20 - [coding 📟/python 💻] - [Python] 리스트 컴프리헨션 List Comprension (if else)
이번에는 컴프리헨션 중 리스트를 제외한
- Dictionary Comprehension
- Set Comprehension
- Generator Comprehension
에 대해 알아보자
딕셔너리 컴프리헨션
리스트 컴프리헨션과 크게 다른 부분은 없다.
대괄호[]를 중괄호{}로 바꿔주고 딕셔너리 구조 대로 키(key) 와 값(value)를 콜론(":") 을 통해 정의해주면 된다.
nums = {i:i for i in range(1,11)}
위와 같이 딕셔너리 컴프리헨션을 통해 딕셔너리를 생성할 수 있지만
아마 이런 케이스의 경우 사용할 일이 적다고 생각한다.
필자의 생각으로는 두가지 경우 사용하면 더욱 효과적이다고 생각한다.
1. 기존 딕셔너리 값을 변환하여 새로운 딕셔너리 생성
# 기존 dic
dic = {'A': 1 , 'B': 34, 'C':7, 'D':3}
# key 값을 소문자로 변경하여 new dic 생성
new_dic = {k.lower():v for k,v in dic.items()}
----------------------------------------------
출력:{'a': 1, 'b': 34, 'c': 7, 'd': 3}
2. 조건을 통한 딕셔너리 필터링
# 기존 dic
dic = {'A': 1 , 'B': 34, 'C':7, 'D':3}
# key 값을 소문자로 변경하여 new dic 생성
new_dic = {k:v for k,v in dic.items() if v > 1}
-----------------------------------------------
출력 : {'B': 34, 'C': 7, 'D': 3}
집합 컴프리헨션
집합 컴프리헨션 set 컴프리 헨션 또한 간단하다.
중괄호를 사용해 값을 넣어주면 된다.
nums_set = {i for i in range(1,11)}
제너레이터 컴프리헨션
소괄호를 사용하여 지네러이터 컴프리헨션을 생성할수 있다.
nums = (i for i in range(1,11))
print(nums)
<generator object <genexpr> at 0x0000020566322340>
for n in nums:
print(n)
반응형
'coding 📟 > python 💻' 카테고리의 다른 글
[Python] 파이썬이 모듈과 패키지를 찾는 방법 ModuleNotFoundError (0) | 2022.05.24 |
---|---|
[Python] __name__ 변수 __main__ 이란 (0) | 2022.05.24 |
[Python] 리스트 컴프리헨션 List Comprension (if else) (0) | 2022.05.20 |
[Python] 가상환경 pyenv windows 윈도우 설치 사용법 (1) | 2022.05.13 |
[Python] 가상환경 pyenv (1) | 2022.05.13 |
댓글