-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy path04_map_filter_reduce.py
81 lines (58 loc) · 1.41 KB
/
04_map_filter_reduce.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import os
import sys
#* map
#* filter
#-----------
# * map
#-----------
# map 은 입력 리스트의 모든 항목에 함수를 적용한다.
#
# map(function_to_apply, list_of_inputs)
# without map
itemList = [1,2,3,4,5]
resultList = []
for each in itemList:
resultList.append(each**2)
print(resultList)
# use map
itemList = [1,2,3,4,5]
resultList = map(lambda x: x**2, itemList)
print(list(resultList))
# new example
def mul(x):
return x*x
def add(x):
return x+x
funcs = [mul, add]
for i in range(5):
value = map(lambda x:x(i), funcs)
print(list(value))
#------------
# * filter
#------------
# 함수에서 true를 반환하는 요소들로 구성되는 리스트를 생성한다.
inList = range(-5, 5)
lessThanZero = list(filter(lambda x: x<0, inList))
print(lessThanZero)
#------------
# * reduce
#------------
# reduce는 리스트로 몇가지 계산을 수행하고 반환하는 매우 유용한 함수다.
# 예를 들어 리스트의 곱을 계산하려고 하면,
from functools import reduce
output = reduce( (lambda x, y: x*y), [1,2,3,4] )
print(output)
# 정리
# map
inList = [1,2,3,4,5]
outList = list(map( lambda x: x*x, inList))
print(outList) # [1,4,9, 16, 25]
# filter
inList = [1,2,3,4,5]
outList = list(filter(lambda x: x>3, inList))
print(outList) # [4,5]
# reduce
from functools import reduce
inList = [1,2,3,4,5]
outList = reduce(lambda x,y: x*y, inList)
print(outList) # 120