본문 바로가기

python

리스트 컴프리헨션(2)

리스트 컴프리헨션을 사용하면 map과 filter 함수를 간단하게 대신할 수 있다.

 

st1 = [1, 2, 3]
st2 = list(map(lambda n: n**2, st1))    # 제곱의 결과를 리스트로 묶음

st2 => [1, 4, 9]

위 코드는 map을 사용한 코드이다.

 

리스트 컴프리헨션을 사용하면 다음과 같이 간단하게 작성할 수 있다.

 

st1 = [1, 2, 3]
st2 = [n**2 for n in st1]     # 제곱의 결과를 리스트로 묶음

st2 => [1, 4, 9]

 

그리고 다음은 filter를 사용한 예이다.

 

st = [1, 2, 3, 4, 5]
ost = list(filter(lambda n:n % 2, st))   # 홀수만 남겨셔 리스트로 묶음

ost => [1, 3, 5]

 

이 역시 리스트 컴프리헨션을 사용하여 간단하게 작성이 가능하다.

 

st = [1, 2, 3, 4, 5]
ost = [n for n in st if n % 2]      # 홀수만 남겨서 리스트로 묶음

ost => [1, 3, 5]

 

다음은 1 ~ 10의 자연수 중에서 홀수들을 대상으로 그 제곱 값을 리스트에 담는 예로써 map과 filter가 동시에 사용되었다.

 

st = list(range(1, 11))

st 
=> [1, 2, 3, 4, 5, 6, 7, ,8 ,9 10]

fst = list(map(lambda n:n**2, filter(lambda n: n % 2, st)))

fst
=> [1, 9, 25, 49, 81]

 

위 코드를 리스트 컴프리헨션을 사용하면 간결하게 작성이 가능하다.

 

st = list(range(1, 11))
fst = [n**2 for n in st if n%2]

fst
=> [1, 9, 25, 49, 81]

'python' 카테고리의 다른 글

파이썬의 메모리 관리  (0) 2022.04.06
제너레이터 함수  (0) 2022.03.06
map과 filter  (0) 2022.03.01
리스트 컴프리핸션  (0) 2022.01.24
Iterable 객체와 Iterator 객체  (0) 2022.01.24