参考:map/reduce Note 1.map():map()函数接收两个参数,一个是函数,一个是Iterable.map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回. #!/usr/bin/env python3 def f(x) : return x*x l = map(f, [1, 2, 3, 4, 5, 6, 7]) print(list(l)) sh-3.2# ./map1.py [1, 4, 9, 16, 25, 36, 49] l是map函数返回的一…
参考: 函数式编程 高阶函数 Note A.函数式编程(Functional Programming)介绍 1.函数是Python内建支持的一种封装,我们通过一层一层的函数调用把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元.这一点和C语言是一致的. 2.计算机和计算的概念: a.在计算机的层次上,CPU执行的是加减乘除的指令代码,以及各种条件判断和跳转指令,所以,汇编语言是最贴近计算机的语言. b.计算则指数学意义上的计算,越是抽象的计算,…
参考:sorted NOTE 1.sorted,快速排序,时间复杂度O(nlogn)渐进最优. #!/usr/bin/env python3 L = [] for i in range(10): L.append(int(input())) SortedL = sorted(L) print(SortedL) 上例:sorted函数返回排序好的list. sh-3.2# ./sorted1.py -10 2 99 78 24 -100 92 33 12 63 [-100, -10, 2, 12,…
偏函数 NOTE 1.int()函数提供额外的base参数,默认值为10.如果传入base参数,就可以做N进制的转换: #!/usr/bin/env python3 import functools def main(): print(int(input(), base=2)) print(int(input(), base=16)) if __name__ == '__main__': main() sh-3.2# ./partial1.py 10 2 20 32 可以看到,后面的base指明…
1:Python中,内置函数名相当于一个变量,指向内置函数.所以可以通过函数名调用相应函数,也可以给函数名赋值,改变它的内容,如:可以把另一个函数变量赋值给它,那它就指向了所赋值的函数了. 2:高级函数:Python中,可以把一个函数变量作为函数参数来使用.参数中有函数变量的函数,称之为高阶函数. map(f,list)函数:定义一个函数f,把f和一个list作为map()的参数,可=可以对list的每一个元素进行f操作,并返回一个新的list. reduce(f,list,init)函数:对l…
参考:类和实例 注意理解第七点. NOTE: 1.类是抽象的模板,比如Student类,实例是根据类创建出来的一个个具体的"对象",每个对象都拥有相同的方法,但各自的数据可能不同. 一个是抽象模板,一个是具体实例. class Student(object) pass Hint: Python中继承的方式 => 在类名之后加上([继承的类名]). 上述Student类继承于object类,这个是所有的类最终都会继承的类. 2.创建实例是通过类名+()实现的. 如果有__init_…
函数式编程 最近对Python的学习有些怠慢,最近的学习态度和学习效率确实很不好,目前这种病况正在好转. 今天,我把之前学过的Python中函数式编程简单总结一下,分享给大家,也欢迎并感谢大家提出意见. 首先,我们学习函数式编程时,需要知道一个概念:高阶函数.那么到底什么是高阶函数呢?把函数作为参数传入,这样的函数就称为高阶函数.而函数式编程就是指这种高度抽象的编程范式. 正文 接下来,我简单介绍以下四种函数的用法:map/reduce   filter   sorted   lambda 在这…
什么是函数式编程? 与面向对象编程(Object-oriented programming)和过程式编程(Procedural programming)并列的编程范式. 最主要的特征是,函数是第一等公民,可以定义在函数内外,作为函数参数或返回值,函数的组合. 强调将计算过程分解成可复用的函数,典型例子就是map方法和reduce方法组合而成 MapReduce 算法. 只有纯的.没有副作用的函数,才是合格的函数. 知乎-什么是函数式编程思维? 函数式编程与命令式编程最大的不同其实在于: 函数式编…
二. 分布式计算(Map/Reduce) 分布式式计算,同样是一个宽泛的概念,在这里,它狭义的指代,按Google Map/Reduce框架所设计的分布式框架.在Hadoop中,分布式文件系统,很大程度上,是为各种分布式计算需求所服务的.我们说分布式文件系统就是加了分布式的文件系统,类似的定义推广到分布式计算上,我们可以将其视为增加了分布式支持的计算函数. 从计算的角度上看,Map/Reduce框架接受各种格式的键值对文件作为输入,读取计算后,最终生成自定义格式的输出文件.而从分布式的角度上看,…
参考:匿名函数 NOTE 1.Python对匿名函数提供了有限的支持. eg. #!/usr/bin/env python3 def main(): lis = list(map(lambda x: x*x, [1, 2, 3, 4, 5])) print(lis) if __name__ == '__main__': main() sh-3.2# ./lambda1.py [1, 4, 9, 16, 25] 可以看出,lambda相当于函数: def func(x): return x*x 2…