리스트 컴프리헨션을 사용하면 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 |