Lambda, Map, Filter, Zip, Reduce
- https://medium.com/pythoneers/5-powerful-functions-in-python-1804b51c4ded
- https://leadsift.com/loop-map-list-comprehension/
✅Lambda
람다는 이름없이 선언할 수 있는 익명 함수이다.
lambda arguments: expression
형식을 따른다.
# (a+b)^2
answer = lambda a, b: a**2 + b**2 + 2*(a+b)
print(answer(3, 6))
✅Map
loop 없이 지정된 element 들을 반복한다
map(function,iterables)
형식을 따른다
def add_list(a,b):
return a+b
output = list(map(add_list,[2,6,3],[3,4,5]))
print(output) # [5, 10, 8]
📌Loop vs Map vs List Comprehension 속도 차이
Never use the builtin map!!
👉 use a list comprehension
# Loop
for entry in entries:
process(entry)
# Map
map(process, entries)
# List Comprehension
[process(entry) for entry in entries]
람다는 이름없이 선언할 수 있는 익명 함수이다.
lambda arguments: expression
형식을 따른다.
# (a+b)^2
answer = lambda a, b: a**2 + b**2 + 2*(a+b)
print(answer(3, 6))
loop 없이 지정된 element 들을 반복한다
map(function,iterables)
형식을 따른다
def add_list(a,b):
return a+b
output = list(map(add_list,[2,6,3],[3,4,5]))
print(output) # [5, 10, 8]
📌Loop vs Map vs List Comprehension 속도 차이
Never use the builtin map!!
👉 use a list comprehension
# Loop
for entry in entries:
process(entry)
# Map
map(process, entries)
# List Comprehension
[process(entry) for entry in entries]
# Loop
results = []
for entry in entries:
results.append(process(entry))
# Map
results = map(process, entries)
# List Comprehension
results = [process(entry) for entry in entries]
✅Filter => list comprehension으로
주어진 조건에 따라 값을 걸러내는 내장 함수
filter(function,iterable)
형식을 따른다
- list comprehension으로 작성한 코드가 2배 이상 빠르다.
output = list(filter(lambda a: a > 0, [1, -2, 3, -4, 5, 6]))
print(output) # [1, 3, 5, 6]
output = list([a for a in [1, -2, 3, -4, 5, 6] if a > 0])
print(output) # [1, 3, 5, 6] 속도가 더 빠르다
✅Zip
n개의 iterables들의 데이터를 추출하여 튜플로 변경하는 내장 함수
zip(*iterables)
형식을 따른다
user_id = ["12121","56161","33287","23244"]
user_name = ["Mick","John","Tessa","Nick"]
user_info = list(zip(user_name,user_id))
print(user_info) # [(‘Mick’, ‘12121’), (‘John’, ‘56161’), (‘Tessa’, ‘33287’), (‘Nick’, ‘23244’)]
✅Reduce
주어진 iterable의 모든 요소에 동일한 작업을 적용할 때 사용된다.
functools
모듈 함수이다
functools.reduce(function, iterable)
형식을 따른다
import functools
def sum_two_elements(a,b):
return a+b
numbers = [6,2,1,3,4]
result = functools.reduce(sum_two_elements, numbers)
print(result) # sum(numbers)와 같은 결과가 나온다.
numbers = [i for i in range(1, 10)]
result = functools.reduce(lambda a, b: a * b, numbers)
print(result) # 10!와 같은 결과가 나온다.
Author And Source
이 문제에 관하여(Lambda, Map, Filter, Zip, Reduce), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@guswns3371/Lambda-Map-Filter-Zip-Reduce
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
주어진 조건에 따라 값을 걸러내는 내장 함수
filter(function,iterable)
형식을 따른다- list comprehension으로 작성한 코드가 2배 이상 빠르다.
output = list(filter(lambda a: a > 0, [1, -2, 3, -4, 5, 6]))
print(output) # [1, 3, 5, 6]
output = list([a for a in [1, -2, 3, -4, 5, 6] if a > 0])
print(output) # [1, 3, 5, 6] 속도가 더 빠르다
n개의 iterables들의 데이터를 추출하여 튜플로 변경하는 내장 함수
zip(*iterables)
형식을 따른다
user_id = ["12121","56161","33287","23244"]
user_name = ["Mick","John","Tessa","Nick"]
user_info = list(zip(user_name,user_id))
print(user_info) # [(‘Mick’, ‘12121’), (‘John’, ‘56161’), (‘Tessa’, ‘33287’), (‘Nick’, ‘23244’)]
✅Reduce
주어진 iterable의 모든 요소에 동일한 작업을 적용할 때 사용된다.
functools
모듈 함수이다
functools.reduce(function, iterable)
형식을 따른다
import functools
def sum_two_elements(a,b):
return a+b
numbers = [6,2,1,3,4]
result = functools.reduce(sum_two_elements, numbers)
print(result) # sum(numbers)와 같은 결과가 나온다.
numbers = [i for i in range(1, 10)]
result = functools.reduce(lambda a, b: a * b, numbers)
print(result) # 10!와 같은 결과가 나온다.
Author And Source
이 문제에 관하여(Lambda, Map, Filter, Zip, Reduce), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@guswns3371/Lambda-Map-Filter-Zip-Reduce
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
주어진 iterable의 모든 요소에 동일한 작업을 적용할 때 사용된다.
functools
모듈 함수이다functools.reduce(function, iterable)
형식을 따른다
import functools
def sum_two_elements(a,b):
return a+b
numbers = [6,2,1,3,4]
result = functools.reduce(sum_two_elements, numbers)
print(result) # sum(numbers)와 같은 결과가 나온다.
numbers = [i for i in range(1, 10)]
result = functools.reduce(lambda a, b: a * b, numbers)
print(result) # 10!와 같은 결과가 나온다.
Author And Source
이 문제에 관하여(Lambda, Map, Filter, Zip, Reduce), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@guswns3371/Lambda-Map-Filter-Zip-Reduce저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)