函数式 编程就是说可以在自定义的函数中,在套用别的函数作为参数变量。
比如:map(f,list) 这里边f就是另一个函数f=x*x。list是一个列表,结合之后结果输出的就是list列表每个数据的平方组成的新的List。
下边简单说一下都有哪些这样的函数式函数。
1.map()函数的使用,接受一个参数同时进行。
def format_name(s):
return s.capitalize()
print map(format_name, ['adam', 'LISA', 'barT'])
//输出结果就是
['Adam', 'Lisa', 'Bart']
2.reduce()函数,与上边map类似,不同的是这里边的f接受两个参数,而且还可以多添加一个默认的初始值。
def prod(x, y):
return x * y
print reduce(prod, [2, 4, 5, 7, 12])
*输出:3360
当print reduce(prod, [2, 4, 5, 7, 12],100)时,100作为计算的初始值。
3.fiter()函数。filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。
注意:s.strip(rm) 删除 s 字符串中开头、结尾处的 rm 序列的字符。当rm为空时,默认删除空白符(包括'\n', '\r', '\t', ' ')
import math
def is_sqr(x):
return math.sqrt(x) % 1 == 0
print filter(is_sqr, range(1, 101))
结果:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
4.sorted()排序函数,默认的是对列表进行有序的正排列。
lower()、upper()、capitalize()、title()、swapcase()分别是字符串大写,字符串小写,首字母大写,字符串大小写互换
def cmp_ignore_case(s1, s2):
if s1.upper() > s2.upper():
return 1
if s1.upper() < s2.upper():
return -1
return 0
print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)
结果:['about', 'bob', 'Credit', 'Zoo']
今天的函数式编程先讲这几种类型,博友门要是有什么不懂得或者补充的,都可以留言,谢谢!