python 函数笔记

###高阶函数 ####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而言其中方法也只是一个对象,这是否是与面向对象的概念很吻合,万物皆对象

相关文章
相关标签/搜索