[Fluent Python] 2장 : 지능형 리스트와 map()/filter() 비교

hyunsu kim·2022년 10월 22일
0

Fluent Python

목록 보기
2/5
post-thumbnail

map()과 filter() 함수를 이용해서 수행할 수 있는 작업은 기능적으로 문제가 있는 파이썬 람다를 억지로 끼워 넣지 않고도 지능형 리스트를 이용해서 모두 구현할 수 있다.

symbols = '#$%^'

# 1. 지능형 리스트
beyond_ascii = [ord(s) for s in symbols if ord(s) > 10]
print(beyond_ascii)

# 2. 맵/필터 구성으로 만든 동일 리스트
beyond_ascii = list(filter(lambda c: c > 10, map(ord, symbols)))
print(beyond_ascii)

필자는 map()/filter()를 조합한 방법이 지능형 리스트보다 빠르다고 생각하고 있었지만, 알렉스 마르텔리의 지적에 따라 그렇지 않다는 것을 알게 되었다. 이제 지능형 리스트를 이용해서 데카르트 곱을 계산해보자. 데카르트 곱은 두 개 이상의 리스트에 있는 모든 항목을 이용해서 만든 튜플로 구성된 리스트이다.

profile
정리공간

0개의 댓글