python函数式编程之内建函数

# -*- coding: utf-8 -*-

#学习lambda
#lambda的作用是定义一个匿名函数

lam = lambda x,y=20:x+y
print lam(2) ==> 22
print lam(2,2) ==> 4
#######################################
#filter
from random import randint

#是否为奇数
def odd(n):000
	return n%2

allNums=[]
#随机生成9个1到99之间的数
for eachNum in range(9):
	print eachNum;
	allNums.append(randint(1,99))
#打印奇数
# filter就是借用odd方法来过滤allNums的数据
print filter(odd,allNums)
#1重构 odd就一句话,可以使用lambda代替
改成 filter(lambda x : x % 2,allNums)
#2重构,再改
print [n for n in allNums if n%2]
#3重构 整个过程可以直接变成一句话。python的魅力
from random inport randint as ri
print [n for n in [ri(1,99) for i in range(99)] if n % 2]

# map的用法
map(lambda x : x%2,argv)
#相当于第一个参数是方法体,第二个参数是给这个方法体传的参数,返回调用方法体后得到的结果

#reduce
reduce(lambda x,y : x+y),range(5))
#计算过程为:((((0+1)+2)+3)+4) ==> 10

你可能感兴趣的:(filter,lambda)