python 3のmap,reduce,filter関数
2942 ワード
python 2にmapを直接印刷すると、filter関数が結果を直接出力します.しかしpython 3ではいくつかの修正が行われ、出力前にlist()を使用して表示変換が必要であり、reduce関数はfunctoolsパッケージに格納され、コードは以下の通りである.
実行結果は次のとおりです.
from functools import reduce
import math
def format_name(s):
return s.upper()
def is_odd(x):
return x % 2 == 1
def sqr_integer(x):
r = math.floor(math.sqrt(x))
return x == r*r
def f(x, y):
return x + y
# map f list , iterator 。
print(list(map(format_name, ['adam', 'LISA', 'barT'])))
# reduce() f ,reduce() list f, 。reduce() 3 , 。
print(reduce(f, [1, 3, 5, 7, 9], 100))
# filter() , iterator。
print(list(filter(is_odd, [1, 4, 6, 7, 9, 12, 17])))
print(list(filter(sqr_integer,range(100))))
実行結果は次のとおりです.
['ADAM', 'LISA', 'BART']
125
[1, 7, 9, 17]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]