Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- dict
- merge
- MongoDB
- EC2
- git
- SAA
- Vue
- 중급파이썬
- pandas
- Props
- S3
- 파이썬
- TypeScript
- node
- SSA
- Class
- async
- flask
- RDS
- 채팅
- lambda
- react
- docker
- NeXT
- crud
- socket io
- 카톡
- wetube
- AWS
- 튜플
Archives
- Today
- Total
초보 개발자
8강 map과 filter를 대신하는 리스트 컴프리헨션 본문
[map과 filter를 대신하는 리스트 컴프리헨션]
map
st1 = [1,2,3]
st2 = list(map(lambda n: n**2, st1)) # 제곱의 결과를 리스트로 묶음
st2
[1,4,9]
이는 리스트 컴프리헨션으로 다음과 같이 작성할 수도 있다
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]
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,91]
이는 리스트 컴프리헨션으로 다음과 같이 작성할 수도 있다
st = list(range(1,11))
st
[1,2,3,4,5,6,7,8,9,10]
fst = [n**2 for n in st if n % 2 ]
fst
[1,9,25,49,91]
n**2가 map을 대신하였고 if n % 2가 filter를 대신하였다.
위의 예에서 보이듯이 map에 filter까지 더해지는 상황에서는 확실히 리스트 컴프리헨션 기반의 코드가 더 간결하다
그러므로 map, filter를 사용해야 하는 경우, 특히 map과 filter를 동시에 사용해야 하는 경우에는 리스트 컴프리헨션으로 대체하는 것에 대해 생각해 볼 필요가 있다.
'Python > 윤성우 열혈 파이썬' 카테고리의 다른 글
10강 제너레이터 표현식 (0) | 2021.12.16 |
---|---|
9강 제너레이터 함수 (0) | 2021.12.16 |
7강 map & filter (0) | 2021.12.16 |
6강 객체처럼 다뤄지는 함수 그리고 람다 (0) | 2021.12.16 |
5강 lterable 객체와 lterator 객체 (0) | 2021.12.16 |