from functools import reduce
#生成器
g=(x*x for x in range(1,10))
print(g)
print(list(g))
#map惰性计算,一次性的
data=map(lambda i:i*i,[x for x in range(1,10)])
print(data)
print(list(data))
#用reduce和lambda计算1到100的平方和
sumSquare=reduce(lambda x,y:x+y,(x*x for x in range(1,101)))
print(sumSquare)
#fillter
def evennum(x):
if x%2==0:
return x
l=filter(evennum,range(1,11))
print(l)
print(list(l))