콘텐츠로 건너뛰기

24. 파이썬 for 문과 리스트 컴프리헨션(List comprehension)

리스트 컴프리헨션(List comprehension)은 리스트 안에 파이썬 for 문을 포함하는 문장을 말합니다
리스트 안에 for문을 포함하게 되는 리스트 컴프리헨션(List comprehension)을 사용 하면 편리하고 직관적으로 프로그래밍을 할 수 있습니다.

Python
>>> a = [2, 4, 6, 8]
>>> result = []
>>> for number in a:
...     result.append(number * 3)
...
>>> print(result)
[6, 12, 18, 24]

위의 예제 코드를 살펴보면 a 라는 변수에 리스트가 대입되고 그 a 변수의 요소의 각 항목에 3을 곱해서 그 결과를 result 리스트에 대입하는 코드입니다.

리스트 컴프리헨션(List comprehension)을 사용하여 변경


위 코드를 리스트 컴프리헨션(List comprehension)을 사용해서 다음처럼 변경할 수 있습니다.

Python
>>> a = [2, 4, 6, 8]
>>> result = [number * 3 for number in a]
>>> print(result)
[6, 12, 18, 24]

다음 코드처럼 [1, 2, 3, 4, 5] 라는 리스트가 있는데 홀수에만 4를 곱해서 대입하고자 한다면 List comprehension 안에 if 조건을 사용할 수도 있습니다

Python
>>> a = [1, 2, 3, 4, 5]
>>> result = [number * 4 for number in a if number % 2 != 0]
>>> print(result)
[4, 12, 20]

위 코드를 살펴보겠습니다
if number % 2 != 0 는 만약 number 를 2 로 나눈 나머지가 0 이 아니라면. 즉 홀수 일 경우에만 number * 4 를 대입해주라는 코드입니다.

리스트 컴프리헨션(List comprehension) 문법

대입변수 = [표현식 for 항목 in 반복가능객체 if 조건문]

여러개 for 문 사용

복잡해지긴 하지만 for 문을 여러개 사용하는것도 가능 합니다.

Python
[표현식 for 항목 1 in 반복가능객체 1 if 조건문 1
        for 항목 2 in 반복가능객체 2 if 조건문 2
        for 항목 3 in 반복가능객체 3 if 조건문 3
        ...
        for 항목 4 in 반복가능객체 4 if 조건문 4]

구구단 결과 모두 리스트에 담기

이전에 진행해 봤던 구구단 코드 결과를 리스트에 전부 담고 싶다면 리스트 컴프리헨션(List comprehension) 을 사용해서 간단하게 구현할수도 있습니다

Python
>>> gugudan = [a * b for a in range(2, 10)
...                  for b in range(1, 10)]
>>> print(gugudan )
[2, 4, 6, 8, 10, 12, 14, 16, 18, 3, 6, 9, 12, 15, 18, 21, 24, 27, 4, 8, 12, 16, 20, 24, 28, 32, 36, 5, 10, 15, 20, 25, 30, 35, 40, 45, 6, 12, 18, 24, 30, 36, 42, 48, 54, 7, 14, 21, 28, 35, 42, 49, 56, 63, 8, 16, 24, 32, 40, 48, 56, 64, 72, 9, 18, 27, 36, 45, 54, 63, 72, 81]

이렇게 해서 파이썬의 반복문인 while 문과 for 문까지 모두 공부해봤습니다.
for 문과 while 문은 아주 비슷한 형태로 동작을 합니다.
for 문으로 작성한 코드를 while 문 으로 바꿀수 있고
마찬가지로 while 문으로 작성한 코드도 for 문으로 바꿀 수 도 있습니다.
그리고 리스트 안에 for 문을 포함 하는 리스트 컴프리헨션(List comprehension) 문법도 배워봤습니다
이제 다음 포스팅에서는 연습문제를 풀어보도록 해보겠습니다.

  • 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
24. 파이썬 for 문과 리스트 컴프리헨션(List comprehension)

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다