반응형
comprehension
Comprehension이란 iterable한 객체를 쉽게 생성하기 위한 방법으로 for문과 if문을 iterable객체에 간략하게 표현가능하다.
- 크게 네 가지 종류의 Comprehension
List Comprehension (LC)
Dict Comprehension (DC)
Set Comprehension (SC)
Generator Expression (GE)
- 구성
| 선언부 | 반복부 | 조건부 |
- List Comprehension
리스트 숫자 중 짝수만 리스트에 저장하기
xxxxxxxxxx
numbers = [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문을 아래와 같이 리스트안에 넣어 단순화 시킬 수 있음
xxxxxxxxxx
numbers = 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 값이 짝수인 딕셔너리 출력
xxxxxxxxxx
id_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 를 사용하면 중복값이 없는 집합생성
xxxxxxxxxx
numbers = 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형태의 ()로 결과를 출력하면 결과가 좀 다르다.
xxxxxxxxxx
numbers = 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 |
댓글