About Python Comprehension
참고
https://docs.python.org/3/tutorial/datastructures.html
Python 기준 버전 3.7.0
Python Comprehension
Python 에는 데이터 구조(List, Dict, Set) 를 보기 쉽고, 간단하게 만들 수 있는 방법인 Comprehension이 있다
squares = []
for x in range(10):
squares.append(x**2)
print(squares)
>>> [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
다음과 같이 긴 코드도 좀더 간결하게 다음과 같이 만들수 있다
squares = [x**2 for x in range(10)]
print(squares)
>>> [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
아래와 같이 Comprehension 을 사용한 코드가 좀더 간결하고 읽기 쉬운것을 알수 있다
이처럼 간단한 List Comprehension 의 경우에는 Loop 문을 돌면서 List들을 만들어 줄수 있고,
dictionary, set 또한 Comprehension 을 통하여 간결하게 dictionary, set을 만들어 줄수 있다.
how to use Comprehension
List
[x for x in range(10)]
와 같은 형태가 기본적인 형태이며, Loop 문을 돌면서 0 ~ 9 까지 들어있는 List를 만드는 구조이다
이 Comprehension 을 사용할때 변수를 다음과 같이 계산할수도 있다
>>> [x * x for x in range(10)]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
과 같이 x 값을 계산하여 연산도 가능하며,
if 문과 함께 사용하여 데이터를 가공할수도 있다
>>> [x if x > 5 else 0 for x in range(10)]
[0, 0, 0, 0, 0, 0, 6, 7, 8, 9]
또한 리스트를 순회하며 method를 호출할수도 있다
>>> [fruit.upper() for fruit in ['apple', 'banana', 'grape']]
['APPLE', 'BANANA', 'GRAPE']
dictionary
Dictionary 또한 순회하며 Comprehension 을 사용할수 있으며,
다음과 같이 쓰일수 있다
>>> {key: value for key, value in [[1, 3], [2, 6], [3, 2]]}
{1: 3, 2: 6, 3: 2}
Set
set 도 동일하다. { } 로 감싸주면 된다.
>>> {x for x in [1, 1, 3, 3, 3, 4, 5, 6]}
{1, 3, 4, 5, 6}