for문 이용
리스트 컴프리헨션은 반복 혹은 특정 조건의 요소들로 새 리스트를 만드는 방법입니다.
이해를 위해 리스트 컴프리헨션을 사용하지 않고 새 리스트를 만드는 예제를 먼저 보여드릴게요.
다음은 1부터 20까지 3간격의 요소를 리스트에 순차 보관하는 코드입니다.
[In]
ls = []
for x in range(1,20,3):
ls.append(x)
print(ls)
[Out]
[1, 4, 7, 10, 13, 16, 19]
리스트 컴프리헨션으로 표현하면 다음처럼 표현할 수 있어요.
변수 = [표현 for 변수 in 컬렉션]
[In]
ls = [x for x in range(1,20,3)]
print(ls)
[Out]
[1, 4, 7, 10, 13, 16, 19]
for문 if 사용
이번에는 for문과 if를 사용하는 리스트 컴프리헨션을 알아봅시다.
마찬가지로 리스트 컴프리헨션을 사용하지 않는 코드를 먼저 보여드릴게요.
이번에는 1에서 19까지 3의 배수와 5의 배수로 리스트를 구성합니다.
[In]
ls=[]
for x in range(1,20):
if x%3 == 0 or x%5==0:
ls.append(x)
print(ls)
[Out]
[3, 5, 6, 9, 10, 12, 15, 18]
리스트 컴프리헨션은 다음처럼 표현할 수 있어요.
변수 = [표현 for 변수 in 컬렉션 if 조건]
[In]
ls = [x for x in range(1,20) if x%3==0 or x%5 == 0]
print(ls)
[Out]
[3, 5, 6, 9, 10, 12, 15, 18]
for문 if else 사용
이번에는 for문과 if else를 사용하는 리스트 컴프리헨션을 알아봅시다.
마찬가지로 리스트 컴프리헨션을 사용하지 않는 코드를 먼저 보여드릴게요.
이번에는 1에서 19까지 3의 배수와 5의 배수는 그대로 그 외의 값은 음수를 리스트에 추가할게요.
[In]
ls=[]
for x in range(1,20):
if x%3 == 0 or x%5==0:
ls.append(x)
else:
ls.append(-x)
print(ls)
[Out]
[-1, -2, 3, -4, 5, 6, -7, -8, 9, 10, -11, 12, -13, -14, 15, -16, -17, 18, -19]
리스트 컴프리헨션은 다음처럼 표현할 수 있어요.
변수 = [표현1 if 조건 else 표현2 for 변수 in 컬렉션 ]
표현1은 if 조건이 참일 때, 표현 2는 else 일 때
[In]
ls = [x if x%3==0 or x%5 == 0 else -x for x in range(1,20) ]
print(ls)
[Out]
[-1, -2, 3, -4, 5, 6, -7, -8, 9, 10, -11, 12, -13, -14, 15, -16, -17, 18, -19]
리스트 컴프리헨션 표현은 데이터 분석, 빅데이터, 머신러닝 등의 분야에서 자주 사용하는 표현입니다.
'Python > 파이썬 입문' 카테고리의 다른 글
[파이썬 입문] 4. 함수 – 3) 람다와 콜백 등 (0) | 2024.05.03 |
---|---|
[파이썬 입문] 4. 함수 – 2) 내장 함수 (0) | 2024.05.03 |
[파이썬 입문] 4. 함수 – 1) 함수 개요 (1) | 2024.05.02 |
[파이썬 입문] 3. 제어문과 컬렉션 – 8) dictionary와 set (0) | 2024.05.02 |
[파이썬 입문] 3. 제어문과 컬렉션 – 6) 리스트 기능2(연산 sort reverse copy index) (0) | 2024.05.02 |
[파이썬 입문] 3. 제어문과 컬렉션 – 5)리스트 기능1 (추가, 병합, 삭제) (0) | 2024.05.02 |
[파이썬 입문] 3. 제어문과 컬렉션 – 4) 튜플과 리스트 맛보기 (0) | 2024.05.02 |
[파이썬 입문] 3. 제어문과 컬렉션 – 3) 반복문 (0) | 2024.05.01 |