내포된 for문
List Comprehension : list 안에 포함된 for 문 -> list 생성
Dict Comprehension : dict 안에 포함된 for문 -> dict 생성
Set Comprehension : set 안에 포함된 for문 -> set 생성
List Comprehension
[i for i in range(10)] 코드를 뒤에서부터 살펴본다.
range(10)은 0 ~9까지 숫자 10개를 생성한다.
그리고 생성된 숫자들에서 숫자를 한 개씩 꺼내어 for 뒤의 i에 저장한다.
이후 for 앞의 i로 리스트를 생성한다.
결과 값으로 0 ~ 9까지의 숫자가 담긴 리스트가 생성되었다.
comprehension을 사용하지 않고 리스트를 생성하려면 아래와 같은 과정을 거쳐야 한다.
그러나 list comprehension을 사용하여 코드 한 줄로 새로운 리스트를 생성할 수 있다.
이 외에 여러 가지 방법으로 comprehension을 사용할 수 있다.
이중 List Comprehension
comprehension을 이중으로 사용할 수도 있다.
comprehension의 처리 순서는 뒤에서부터 시작하기 때문에
for dan in range(2, 10)보다 for mul in range(1, 10)을 먼저 실행한다.
dan 값은 2에서 시작하고, mul 값이 1에서부터 9까지 반복된 뒤,
dan 값이 1 증가되어 3이 되고, 다시 mul 값이 1에서 9까지 증가되는 것이다.
Comprehension - if
가장 처음에 실행했던 코드에서 if문을 추가하였다.
if 조건을 만족시킨 경우만 list에 담는 것이다.
위 표현보단 아래 표현을 더 선호한다.
Dictionary Comprehension
dict는 key - value 쌍으로 이루어진 집합 데이터이다.
Dict Comprehension을 사용하려면 위와 같은 표현을 써야 한다.
dict 내 데이터를 for문으로 순환하는 방법은 다음과 같다.
기본적인 사용 방법이지만 잘 사용하지 않고, items() 함수를 이용해 사용한다.
items() 함수는 dict 내 key-value 쌍을 반환한다.