arr = [1, 2, 3, 4, 5]
l = list(map(lambda x, y: x + y, arr[:-1], arr[1:]))
print(l)
도커띠(dockerddi)2016-09-28 11:41
python3 기준
도커띠(dockerddi)2016-09-28 11:41
list빼도 되넹
도커띠(dockerddi)2016-09-28 11:45
ㄴ 감사합니다 도커님 ㅋㅋ 도커 잘쓰구잇음 ㅋㅋ
익명(110.70)2016-09-28 12:28
도커띠의 답변에 추가하자면 list를빼야 'lazy evalutaion'를 하기때문에 빼는게 좋음. list함수를 써버리면 python2 버전의 map()처럼 'eager evaluation'을 하기때문인데(참고로 python3 의 map()은 python2의 imap(). lazy냐 eager냐의 차이임) 둘의 차이는 변수에 값이 할당될때 계산을 미리 다 하느냐 아니냐의 차이임. 지금처럼 작은 크기의 리스트를 사용할땐 상관없지만 10억개 짜리 리스트를 돌린다 하면 eager evaluation으로 처리할시 문제가 될 가능성이있음.
arr = [1, 2, 3, 4, 5] l = list(map(lambda x, y: x + y, arr[:-1], arr[1:])) print(l)
python3 기준
list빼도 되넹
ㄴ 감사합니다 도커님 ㅋㅋ 도커 잘쓰구잇음 ㅋㅋ
도커띠의 답변에 추가하자면 list를빼야 'lazy evalutaion'를 하기때문에 빼는게 좋음. list함수를 써버리면 python2 버전의 map()처럼 'eager evaluation'을 하기때문인데(참고로 python3 의 map()은 python2의 imap(). lazy냐 eager냐의 차이임) 둘의 차이는 변수에 값이 할당될때 계산을 미리 다 하느냐 아니냐의 차이임. 지금처럼 작은 크기의 리스트를 사용할땐 상관없지만 10억개 짜리 리스트를 돌린다 하면 eager evaluation으로 처리할시 문제가 될 가능성이있음.