[Python] 컴프리헨션(Comprehension)
Comprehension이란?
컴프리헨션(Comprehension)은 원하는 데이터를 파이썬에서 제공하는 자료구조(list, dictionary, set)에 담아 표현하려할 때 사용할 수 있는 문법으로 종류는 4가지입니다.
- list 컴프리헨션
- dictionary 컴프리헨션
- set 컴프리헨션
- generator 컴프리헨션
list 컴프리헨션
[1, 6) 순차열이 담긴 list 컨테이너를 생성하기 위해선 어떻게 해야 할까요?
>>> number_list = []
>>> number_list.append(1)
>>> number_list.append(2)
>>> number_list.append(3)
>>> number_list.append(4)
>>> number_list.append(5)
>>> number_list
[1, 2, 3, 4, 5]
위와 같이 빈 list 컨테이너를 생성한 후, append() 멤버 함수를 이용해 원소를 1개씩 추가해주는 방법이 있습니다. 또는 반복문을 이용해 코드를 좀 더 단축시킬 수도 있습니다.
>>> number_list = []
>>> for number in range(1, 6):
number_list.append(number)
>>> number_list
[1, 2, 3, 4, 5]
또는, list() 전역 함수와 range() 전역 함수를 사용해 코드를 좀 더 단축시킬 수도 있습니다.
>>> number_list = list(range(1, 6))
>>> number_list
[1, 2, 3, 4, 5]
위의 3가지 방법 모두 괜찮은 방법이지만, 파이썬의 '컴프리헨션' 문법을 이용하면 훨씬 더 괜찮게 표현할 수 있습니다.
# [표현식 for 항목 in 순회 가능한 객체]
>>> number_list = [number for number in range(1, 6)]
>>> number_list
[1, 2, 3, 4, 5]
만약 구간 [1, 6)에서 홀수 값만이 담긴 list 컨테이너를 생성하고 싶다해도 '컴프리헨션'을 이용하면 간단히 표현할 수 있습니다.
>>> odd_list = [number for number in range(1, 6) if number % 2 == 1]
>>> odd_list
[1, 3, 5]
'Programming > Python' 카테고리의 다른 글
[Python] 파일 입출력 (0) | 2019.06.11 |
---|---|
[Python] private 네임 맹글링 (0) | 2019.06.10 |
[Python] 클래스(class) (0) | 2019.06.10 |
[Python] 클로저(Closure) (0) | 2019.06.07 |
[Python] list, tuple, dictionary, set 자료구조 (0) | 2019.06.05 |
댓글
이 글 공유하기
다른 글
-
[Python] private 네임 맹글링
[Python] private 네임 맹글링
2019.06.10 -
[Python] 클래스(class)
[Python] 클래스(class)
2019.06.10 -
[Python] 클로저(Closure)
[Python] 클로저(Closure)
2019.06.07 -
[Python] list, tuple, dictionary, set 자료구조
[Python] list, tuple, dictionary, set 자료구조
2019.06.05