lambda함수에 list를 씌워주지 않았을 때 나타나는 결과값에 대한 질문 ( python )
조회수 485회
a=[1,2,3,4,5,6,7,8,9,9,1,5,4,32,2]
a=map(lambda x :x*10,a)
print(a)
리스트에 있는 것들을 한번에 *10 해주려고 lambda 함수를 썼습니다.
근데 왜 리스트를 안 씌우면
map object at 0x000002659B33DF10
라고 뜨는건가요?
리스트를 안 씌운 저 결과가 의미하는 것이 궁금합니다. 16진수로 나타낸 위치(?) 같은건가요..?
답변 감사합니다. 좋은 하루 되세요!
1 답변
-
idle 에서 아래 예시를 한번 한줄씩 그대로 실행해 보세요. 성능이 좋지 않은 컴퓨터에서 실행해 보면 더 좋습니다.
>>> a = list(range(1000000)) >>> b = map(lambda x: x*10, a) >>> c = list(b) >>> a = list(range(100000000)) >>> b = map(lambda x: x*10, a) >>> c = list(b) >>> import time >>> def func(): t = time.time() a = list(range(100000000)) print(f"assigning a (list) took {time.time()-t} sec") t = time.time() b = map(lambda x: x*10, a) print(f"assigning b (map) took {time.time()-t} sec") t = time.time() c = list(map(lambda x: x*10, b)) print(f"assigning c (list of map) took {time.time()-t} sec") >>> func() assigning a (list) took 5.798054933547974 sec assigning b (map) took 0.0 sec assigning c (list of map) took 34.67618656158447 sec >>>
댓글 입력