일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- jupyter
- Python
- django framework
- 우분투
- 문자열
- linked list
- Euler
- Python3
- 피보나치 수
- 다이나믹 프로그래밍
- Django
- KTNF
- 파이썬
- Hash function
- 파이썬3
- 국산 네트워크
- 주피터
- ubuntu
- Anaconda
- 백준 알고리즘
- 프로젝트 오일러
- FNCP
- virtualenvwrapper
- Hash Table
- Ipython
- 아나콘다
- IO Visor
- data structure
- project euler
- virtualenv
- Today
- Total
태코놀로지
자료구조와 컴프리헨션(Comprehension) 본문
2.4 Comprehension for data structure
컴프리헨션(comprehension)은 하나 이상의 이터레이터로부터 파이썬의 자료구조를 만드는 컴팩트한 방법이다. 컴프리헨션은 비교적 간편한 구문으로 반복문과 조건 테스트를 결합할 수 있도록 해준다. 때때로 컴프리헨션을 사용하는 것은 초급 이상의 단계에서 파이썬을 어느 정도 알고 있다는 것을 의마한다. 즉, 더 파이써닉하게 파이썬을 사용한다는 것을 의미한다.
리스트 컴프리헨션(List Comprehension)
대표적인 컴프리헨션 방법에는 리스트 컴프리헨션이 있다. 대괄호 안에 for 구문을 사용하여 리스트를 초기화 함으로써 컴프리헨션 기능을 수행할 수 있다. 리스트의 요소로 리스트가 포함될 수 있는 만큼, 컴프리헨션 역시 중첩되서 사용이 가능하다. 그러나 파이써닉하게 코딩하면서도, 가독성을 해치지 않는 범위까지만 컴프리헨션 중첩을 사용하자.
사전 컴프리헨션(Dictionary Comprehension)
사전 자료형(Dictionary) 역시 이터레이터 자료 구조이므로 컴프리헨션 방법을 적용할 수 있다. 리스트 컴프리헨션이 대괄호 안에 for 구문을 통해서 컴프리헨션을 구현했다면, 사전 자료형은 중괄호를 사용한다는 차이점만 있을 뿐 대부분의 내용은 동일하다.
집합 컴프리헨션(Set Comprehension)
집합 자료형(Set) 역시 이터레이터 자료 구조이므로 컴프리헨션 방법을 적용할 수 있다. 사전 자료형이 중괄호를 사용해서 컴프리헨션을 적용한 것과 동일하게 집합 자료형 역시 중괄호를 사용한다. 한 가지 큰 차이점은 사전 자료형의 경우 [Key : Value] 쌍에 대응되는 형태로 적용하고, 집합 자료형은 단순 나열하는 방식으로 구현한다.