map과 list 내장(comprehension)의 비교


어떤 경우에 map()을, 어떤 경우에 list 내장을 써야 하는지 특별히 정해진게 있나요? 둘 중 어느 게 더 효율적이고 파이썬스러운 방법인가요?

  • 2016년 01월 19일에 작성됨

조회수 224


1 답변


좋아요
0
싫어요
채택취소하기
  • map이 더 빠른 경우 : lambda를 쓰지 않고 map과 list에서 같은 함수를 쓸 때(아주 조금 더 빠름)
  • list 내장이 더 빠른 경우 : 위의 상황을 제외한 대부분의 경우.

그리고 파이썬 개발자들은 list가 더 가독성이 좋기 때문에 list를 보통 선호합니다.

속도 차는 다음과 같습니다.

map이 더 빠른 경우 - lambda를 쓰지 않으면서 같은 함수를 쓸 때

$ python -mtimeit -s'xs=range(10)' 'map(hex, xs)'
100000 loops, best of 3: 4.86 usec per loop
$ python -mtimeit -s'xs=range(10)' '[hex(x) for x in xs]'
100000 loops, best of 3: 5.58 usec per loop

list내장이 더 빠른 경우 - 위의 상황을 제외한 대부분의 경우(예제는 lambda를 쓰는 경우)

$ python -mtimeit -s'xs=range(10)' 'map(lambda x: x+2, xs)'
100000 loops, best of 3: 4.24 usec per loop
$ python -mtimeit -s'xs=range(10)' '[x+2 for x in xs]'
100000 loops, best of 3: 2.32 usec per loop
  • 2016년 01월 19일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close