[Python] Comprehension

김민석·2024년 3월 9일
0

python

목록 보기
4/5

Comprehension

파이썬 comprehension은 list, set, dictionary 등의 자료구조에 데이터를 더 간결하게 넣는 기능이다.

어떤 list에서 짝수만을 찾아 제곱한 후 even_nums라는 리스트에 넣는 코드를 짠다고 해보자.

comprehension을 사용하지 않고 코드를 짠다고 하면 for 반복문을 이용해서 코드를 짤 것이다.

nums = [1,2,3,4,5,6,7,8,9]
even_nums = []
for num in nums :
	if num % 2 == 0 :
    	even_nums.append(num**2)
        

이런 식으로 for 문을 사용해서 nums로부터 짝수로만 이루어져 있는 even_nums를 만들기 위해서는 5줄의 코드가 필요하다. 하지만 comprehension 기능을 이용하면 2줄 코드로 똑같은 기능을 만들어낼 수 있다.

nums = [1,2,3,4,5,6,7,8,9]
even_nums = [num**2 for num in nums if num % 2 == 0]

Comprehension의 구조

Comprehension은 3개의 구조로 이루어져있다는 것이 키 포인트이다.
loop section -> condition section -> data section 순서대로 데이터가 지나간다고 생각하면 된다. (실제로 for문에서 데이터가 이처럼 움직인다)

Data section

실제로 list에 들어갈 데이터를 정의하는 영역이다.
위의 예시에서 노란색으로 칠해진 영역으로 뒤에 있을 loop section과 condition section을 통과한 데이터를 이용하여 list에 어떤 데이터가 들어갈지 정의한다.

Loop section

condition section과 data section을 거쳐 list의 element가 만들어지는 과정을 반복시켜주는 영역이다.
이곳에서 데이터를 뽑아 condition section과 data section으로 전달한다.

Condition section

loop section을 통해 들어온 데이터 중 data section으로 보낼지 즉, 이 list에 들어올 element인지 선별하는 과정.
data section으로 들어가는 데이터는 모두 list에 element로 추가된다. 그래서 그 전에 data section으로 들어갈지 말지 선별하는 역할을 한다.

profile
명품개발자지망생

0개의 댓글