python-高次関数-map reduce filter sorted
map
output:
まとめ: mapの最初のパラメータは関数(1つのパラメータ)であり、2番目のパラメータはlist である. map機能はlistの各要素に関数を作用させ、新しいlist を返す.
reduce
output:
まとめ: reduct最初のパラメータは関数(2つのパラメータ)であり、2番目のパラメータはlist である. reduct機能は関数を用いて累積計算 を行う.
filter
output:
まとめ: filter最初のパラメータは関数(1パラメータ、ブール値を返す)であり、2番目のパラメータはlist である. fliter機能関数に従って結果フィルタ要素 を返す
sorted
output:
まとめ: sorted 1番目のパラメータはlist、2番目のパラメータは関数(2つのパラメータ、比較結果を返し、通常は1が大きい、-1が小さい、0が等しい) を規定する. sorted機能関数比較結果に基づいてソート 注意:2番目のパラメータomitの場合は、>または
def double(a):
return 2 * a
def upper(str):
return str.upper()
print map(double, [1, 2, 3, 4, 5, 6, 7, 8, 9])
print map(upper, 'martin')
output:
[2, 4, 6, 8, 10, 12, 14, 16, 18]
['M', 'A', 'R', 'T', 'I', 'N']
まとめ:
reduce
def add(a, b):
return a + b
def mul(a, b):
return a * b
print reduce(add, [1, 3 ,5 ,7, 9])
print reduce(mul, [1, 3 ,5 ,7, 9])
output:
25
945
まとめ:
filter
def odd(n):
return n % 2 == 1
def prime(n):
if n == 1:
return False
for i in range(2, n):
if n % i == 0:
return False
return True
print filter(odd, range(1, 21))
print filter(prime, range(1, 21))
output:
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
[2, 3, 5, 7, 11, 13, 17, 19]
まとめ:
sorted
def asc(x, y):
if x > y:
return 1
if x < y:
return -1
return 0
def desc(x, y):
if x > y:
return -1
if x < y:
return 1
return 0
print sorted([8, 5, 58, 18, 15])
print sorted([8, 5, 58, 18, 15], asc)
print sorted([8, 5, 58, 18, 15], desc)
output:
[5, 8, 15, 18, 58]
[5, 8, 15, 18, 58]
[58, 18, 15, 8, 5]
まとめ: