Python List Comprehension 리스트를 간편하게

Python List Comprehension에 대해 살펴보겠습니다.

List Comprehension은 리스트를 쉽고 간단하게 만들 수 있는 파이썬의 문법입니다.

다른언어에는 없는 파이썬의 독튼한 문법입니다 적재적소에 사용하면 꽤나 유용할 것 입니다.

 

사용법은 아래와 같습니다.

[ 표현식 for 변수 in 순회가능 객체 (조건문)]

순회가능 객체를 돌면서 변수에 할당하고 조건문이 참이라면 표현식을 실행합니다.

>>> [ num*num for num in range(6) if num > 2 ]
[9, 16, 25]

# 조건문은 생략해도 된다.
>>> [ num*num for num in range(6) ]
[0, 1, 4, 9, 16, 25]

 

 

제곱수들의 List가 손쉽게 만들어졌다.

 

List Complrehension 에서 표현식에 if else문을 사용할 수 있는데 이때 형식은 아래와 같다.

[ 조건 참일때 출력값 if 조건 else 조건 거짓일때 출력값 for 변수 in 순회가능 객체 (조건문)]

>>> [ num*-1 if num < 0 else num for num in range(-5, 5)]
[5, 4, 3, 2, 1, 0, 1, 2, 3, 4]

손쉽게 음수이면 -1을 곱해서 양수로 바꿔서 List를 만들었다.

 

마지막으로 중첩 for문을 활용한 List Comprehension에 대해 살펴보겠습니다.

바로 예제를 먼저 살펴보겠습니다.

>>> [ numA*numB for numA in range(4) for numB in range(4, 8) ]
[0, 0, 0, 0, 4, 5, 6, 7, 8, 10, 12, 14, 12, 15, 18, 21]

for문 뒤에 for문을 쓰는경우

앞의 for 문의 원소에다 뒤에 for문의 원소를 돌면서 적용한 결과가 나타납니다.

따라서 위 예제에서는 0*4, 0*5, 0*6, 0*7, 1*4, 1*5, 1*6 .... 이렇게 계산되어 출력되었습니다.