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 .... 이렇게 계산되어 출력되었습니다.