-
reduce()函数 reduce()函数也是Python内置的一个高阶函数。reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。 例如,编写一个f函数,接收x和y,返回x和y的和: def f(x, y): return x + y 调用 reduce(f, [1, 3, 5, 7, 9])时,reduce函数将做如下计算: 先计算头两个元素:f(1, 3),结果为4; 再把结果和第3个元素计算:f(4, 5),结果为9; 再把结果和第4个元素计算:f(9, 7),结果为16; 再把结果和第5个元素计算:f(16, 9),结果为25; 由于没有更多的元素了,计算结束,返回结果25。 上述计算实际上是对 list 的所有元素求和。虽然Python内置了求和函数sum(),但是,利用reduce()求和也很简单。 reduce()还可以接收第3个可选参数,作为计算的初始值。如果把初始值设为100,计算: reduce(f, [1, 3, 5, 7, 9], 100) 结果将变为125,因为第一轮计算是: 计算初始值和第一个元素:f(100, 1),结果为101.查看全部
-
map()函数 map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。 例如,对于list [1, 2, 3, 4, 5, 6, 7, 8, 9] 如果希望把list的每个元素都作平方,就可以用map()函数: 因此,我们只需要传入函数f(x)=x*x,就可以利用map()函数完成这个计算: def f(x): return x*x print map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9]) 输出结果: [1, 4, 9, 10, 25, 36, 49, 64, 81] 注意:map()函数不改变原有的 list,而是返回一个新的 list。 利用map()函数,可以把一个 list 转换为另一个 list,只需要传入转换函数。 由于list包含的元素可以是任何类型,因此,map() 不仅仅可以处理只包含数值的 list,事实上它可以处理包含任意类型的 list,只要传入的函数f可以处理这种数据类型。查看全部
-
高阶函数 1.变量可以指向函数 2.函数名其实就是指向函数的变量 高阶函数:能接收函数做参数的函数 1.变量可以指向函数 2.函数的参数可以接收变量 3.一个函数可以接收另一个函数作为参数 4.能接收函数作为参数的函数就是高阶函数查看全部
-
函数式: functional 一种编程范式。 函数式编程的特点: 1.把计算视为函数而非指令 2.春函数式编程:不需要变量,没有变量,测试简单 3.支持高阶函数,代码简洁 Python支持的函数式编程: 1.不是纯函数式编程:允许有变量 2.支持高阶函数:函数也可以作为变量传入 3.支持闭包:有了闭包 就能返回函数 4.有限度的支持匿名函数查看全部
-
继承树可以往上追溯,但是不能向下查看全部
-
def __cmp__(self, s): if self.score == s.score: return cmp(self.name, s.name) return -cmp(self.score, s.score) 很巧妙啊查看全部
-
在继承链上,一个父类的实例不能是子类类型,因为子类比父类多了一些属性和方法。一个实例可以看成它本身的类型,也可以看成它父类的类型。函数isinstance()可以判断一个变量的类型 print isinstance(t,Person) print isinstance(t,Student)查看全部
-
python基础回顾查看全部
-
python基础回顾查看全部
-
import web查看全部
-
pip install web.py查看全部
-
super("子类名",self).__init__([从父类继承的属性参数]):用于初始化父类。不初始化,继承而来的子类将没有父类定义的实例方法中所具有的属性查看全部
-
sorted() 是高阶函数,接受一个比较函数。查看全部
-
创建实例属性 虽然可以通过Person类创建出xiaoming、xiaohong等实例,但是这些实例看上除了地址不同外,没有什么其他不同。在现实世界中,区分xiaoming、xiaohong要依靠他们各自的名字、性别、生日等属性。 如何让每个实例拥有各自不同的属性?由于Python是动态语言,对每一个实例,都可以直接给他们的属性赋值,例如,给xiaoming这个实例加上name、gender和birth属性: xiaoming = Person() xiaoming.name = 'Xiao Ming' xiaoming.gender = 'Male' xiaoming.birth = '1990-1-1' 给xiaohong加上的属性不一定要和xiaoming相同: xiaohong = Person() xiaohong.name = 'Xiao Hong' xiaohong.school = 'No. 1 High School' xiaohong.grade = 2 实例的属性可以像普通变量一样进行操作: xiaohong.grade = xiaohong.grade + 1查看全部
-
定义类并创建实例 在Python中,类通过 class 关键字定义。以 Person 为例,定义一个Person类如下: class Person(object): pass 按照 Python 的编程习惯,类名以大写字母开头,紧接着是(object),表示该类是从哪个类继承下来的。类的继承将在后面的章节讲解,现在我们只需要简单地从object类继承。 有了Person类的定义,就可以创建出具体的xiaoming、xiaohong等实例。创建实例使用 类名+(),类似函数调用的形式创建: xiaoming = Person() xiaohong = Person()查看全部
举报
0/150
提交
取消