반응형
comprehension
Comprehension이란 iterable한 객체를 쉽게 생성하기 위한 방법으로 for문과 if문을 iterable객체에 간략하게 표현가능하다.
- 크게 네 가지 종류의 Comprehension
List Comprehension (LC)
Dict Comprehension (DC)
Set Comprehension (SC)
Generator Expression (GE)
- 구성
| 선언부 | 반복부 | 조건부 |
- List Comprehension
리스트 숫자 중 짝수만 리스트에 저장하기
xxxxxxxxxxnumbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]even_numbers = []for number in numbers:if number % 2 == 0:even_numbers.append(number)print(even_numbers)
for문과 if문을 아래와 같이 리스트안에 넣어 단순화 시킬 수 있음
xxxxxxxxxxnumbers = range(1,11)even_numbers= [i for i in numbers if i % 2 == 0 ]print(even_numbers)
결과
xxxxxxxxxx[2, 4, 6, 8, 10]
- Dict Comprehension
key 값이 짝수인 딕셔너리 출력
xxxxxxxxxxid_name = {1: '박진수', 2: '강만진', 3: '홍수정',4:'김민수'}id_select = {k:v for k,v in id_name.items() if k%2==0 }print(id_select)
xxxxxxxxxx{2: '강만진', 4: '김민수'}
- Set Comprehension Set 를 사용하면 중복값이 없는 집합생성
xxxxxxxxxxnumbers = range(1,11)even_numbers= {i for i in numbers if i % 2 == 0 }print(even_numbers)
결과
xxxxxxxxxx{2, 4, 6, 8, 10}
- Generator Expression
tuple형태의 ()로 결과를 출력하면 결과가 좀 다르다.
xxxxxxxxxxnumbers = range(1,11)even_numbers= (i for i in numbers if i % 2 == 0 )print(even_numbers)
generator object라는 결과물이 나온다
xxxxxxxxxx<generator object <genexpr> at 0x000002A5FDDB0F90>
*를 통해서 언패킹가능
print(*even_numbers)2 4 6 8 10
반응형
'PYTHON > 기본 문법' 카테고리의 다른 글
| numpy 기초 (0) | 2022.07.31 |
|---|---|
| [PYTHON - 기본 문법] 1. 변수 (0) | 2020.10.11 |
| [PYTHON - 기본 문법] 파이썬 ++ (0) | 2020.05.20 |
| [PYTHON - 기본 문법] iterator (0) | 2020.05.17 |
| [PYTHON - 기본 문법] 0. 환경 설정 (0) | 2020.05.10 |
댓글