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]