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)

Leave a Comment