函数式编程

lambda
lambda[arg1[, arg2, ... argN]]: expression

a = lambda x, y = 2: x + y

filter()
filter(func, seq)

from random import randint
allNums = []
for eachNum in range(9):
    allNums.append(randint(1, 99))
print filter(lambda n: n % 2, allNums)
from random import randint
allNums = []
for eachNum in range(9):
    allNums.append(randint(1, 99))
print [n for n in allNums if n % 2]
from random import randint as ri
print [n for n in [ri(1, 99) for i in range(9)] if n % 2]

map()
map(func, seq1[, seq2...])

map((lambda x: x + 2), [0, 1, 2, 3, 4, 5]
[x + 2 for x in range(6)]
map(lambda x, y: x + y, [1, 3, 5], [2, 4, 6])
map(None, [1, 3, 5], [2, 4, 6])

reduce()
reduce(func, seq[,init])

print 'the total is :', reduce((lambda x, y: x + y), range(5))

摘自《Python核心编程》

posted @ 2015-12-18 00:18  dflyingfish  阅读(111)  评论(0)    收藏  举报