###高阶函数 ####filter 这个函数的功能就是对一个序列进行过滤,只保存须要的值python
好比咱们对一个组合进行筛选只保留偶数就能够采用下面的方法express
def is_odd(n): if n%2==0: return True else: return False L=list(filter(is_odd,range(1,10))) print(L)
若是咱们要对一个组合进行过滤只保存其中的回文数函数
所谓的回文是指该数逆序后与自身相同性能
如1111,1221,3443code
def is_palindrome(n): return str(n)==str(n)[::-1] output = filter(is_palindrome, range(1, 10000)) print(list(output))
####sorted 内置排序函数对象
对一个数列进行排序排序
sorted([5, 2, 3, 1, 4])字符串
输出[1, 2, 3, 4, 5]io
在list的方法中一样提供了一个sort()函数,不过相对于该函数而言sorted更加的强大,他不只支持原始的数列还支持其余更为复杂的对象。 好比class
>>> sorted({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'})
[1, 2, 3, 4, 5]
对字符串进行比对
>>>sorted(["This","is","a","python","test"],key=str.lower)
['a', 'is', 'python', 'test', 'This']
其中key=str.lower,对该排序不进行大小写对比 ####匿名函数 python经过使用lambda来创造匿名函数。所谓匿名就是指不用经过def的标准来进行定义一个函数。 这种语句的目的是因为性能的缘由,在调用时绕过函数的栈分配。其语法是:
lambda [arg1[, arg2, ... argN]]: expression
其中的函数下可选的,若是使用参数可用于表示式之中。 下面的例子是建立一上两个数相加的匿名函数
>>> sum = lambda x, y : x + y
>>> sum(3,4) 输出的是7
当你两个数相加的时候就能够直接调用 sum这个匿名函数。
另外一个更为复杂的匿名函数/
# 使用def定义的函数 def add( x, y ): return x + y # 使用lambda的表达式 lambda x, y: x + y # lambda也容许有默认值和使用变长参数 lambda x, y = 2: x + y lambda *z: z # 调用lambda函数 >>> a = lambda x, y: x + y >>> a( 1, 3 ) 4 >>> b = lambda x, y = 2: x + y >>> b( 1 ) 3 >>> b( 1, 3 ) 4 >>> c = lambda *z: z >>> c( 10, 'test') (10, 'test')
使用匿名函数能够使程序变的更为简洁和优雅
装饰器
其实对于python而言其中方法也只是一个对象,这是否是与面向对象的概念很吻合,万物皆对象