Python之lambda表达式和内置函数

lambda表达式其实就是简化的函数表达式。

它只用于处理简单逻辑,

它会自动return数据

通常定义一个函数,按照以下形式:

def  func(arg):
      return arg +1
result = func(100)
print result
101

以上函数用lambda表达式可以这么写:

func2 = lambda a: a+1
result = func2(100)
print result

在lambda表达式中,func2 相当于函数表达式中的func,即函数的名称

a相当于函数表达式中的arg,即函数的参数。

冒号后面的a+1,相当于函数表达式中的返回结果,只不过在lambda表达式中不再用return来声明了。

之前的文档中介绍过,函数可以添加多个参数,,lambda表达式也可以

例如:

func3 = lambda a,b: a + b
result = func3(100,200)
print result
300

Python内置函数

map方法:

map方法会遍历整个序列(包括列表和元组),并对每一个元素进行相应的操作。

例如:有一个列表,将列表中的每一个元素加10。可以用map函数操作

li = [,,]
func1(arg):
    arg +  = (func1,li)

map内部原理其实是,

 = []
I li:
    .append(func1(I))

map函数可以接受多个序列作为参数:

l1 = [,,]
l2 = [,,]
l3 = [,,]
func2(a1,a2,a3):
    a1 + a2 + a3

(func2,l1,l2,l3)

[17, 30, 43]

注意,如果接受多个序列作为参数,则每一个序列的元素个数必须相等。

上面的例子用lambda表达式,这样写

l1 = [,,]
l2 = [,,]
l3 = [,,]

print map(lambda a1,a2,a3:a1+a2+a3,l1,l2,l3)

filter函数:

filter会遍历序列中的每一个元素,按条件对元素进行过滤,其实内部原理就是按照条件进行计算,计算结果为True的元素不过滤,计算结果为False,则过过滤

例如:

例1:

>>> li = [11,22,‘‘,False,0]
>>> print filter(None,li)
[11, 22]

上面的例子中,None表示过滤掉布尔值为假的元素。0,False,空字符串都是布尔值都是假

 = [,,,]
func(a):
    a>(func,)

[44,55]

这里就是遍历l1这个列表,每一个元素通过函数func计算,大于33的则返回True,否则返回False。返回False则被过滤掉了。

reduce函数:

接受一个序列,遍历序列中的元素,然后进行一系列的计算,得到一个结果。

reduce是将给出的元素按照方法进行计算,至少要接受两个元素。

例如计算1+2+3+4+5的和

reduce的原理是:计算1+2得到a 然后计算a+3,得到b,再计算b+4.依次类推

li =[,,,,]

 = (arg1,arg2:arg1+arg2,li)
时间: 2024-08-03 19:25:25

Python之lambda表达式和内置函数的相关文章

【Python全栈笔记】04 [模块二] 18 Oct lambda表达式, 内置函数

lambda表达式 lambda表达式是函数的一种简化,如下面两种函数定义方法,实际上效果是一样的. 使用lambda表达式的函数,func2是函数名,lambda: 后面的123 即为返回值. 1 def func1(): 2 return 123 3 4 result1 = func1() 5 print(result1) 6 # 正常定义一个函数 => 123 7 8 9 func2 = lambda: 123 10 result2 = func2() 11 print(result2)

python — lambda表达式与内置函数

目录 1 lambda表达式 (匿名函数) 2 内置函数 1 lambda表达式 (匿名函数) 用于表示简单的函数 lambda表达式,为了解决简单函数的情况: def func(a1,a2): =====> func = lambda a1,a2:a1+a2 # 函数直接得到返回值,这里隐藏了return return a1+a2 简化 # 三元运算,为了解决简单的if else的情况,如: if 1 == 1: a = 123 else: a = 456 a = 123 if 1 == 1

三元运算式、lambda表达式、内置函数map、reduce、filter以及yield生成器

一.三元运算(式) 对于一般简单的if else条件判断句可以用三元运算来表示 具体模式为: if condition:   expr1 else:   expr2 等价于: expr1 if condition else expr2 解释:如果if condition条件成立就执行expr1表达式,否则就执行else expr2表达式 示例① >>> if 2 == 2: ...    name = 'cool' ... else: ...    name ='hot' ...  &g

Day03---集合,函数,三目运算,lambda表达式,内置函数,文件操作

第一节,集合    除了之前学过的数据类型,int,str,bool,list,dict,tuple,还有一个基本数据类型-集合,集合是一组无序,不重复的序列.由于这个特性,所以集合的元素也可以作为字典的键. 1.集合的创建 cast = set() #创建空集合 2.集合的操作 add()  #一次只能添加一个元素 update()  #一次能添加多个元素 clear()  #清空一个集合 copy()  #拷贝一个集合 difference() #比较两个集合,生成一个新的前面存在后面不存在

python基础三元表达式和内置函数列表

三元运算  result = 值1 if 条件 else 值2 如果条件为真:result = 值1 如果条件为假:result = 值2

python's fourthday for me 内置函数

locals:  函数会以字典的类型返回当前位置的全部局部变量. globals:  函数会以字典的了类型返回全部的全局变量. a = 1 def func(): b = 2 print(locals()) print(globals()) func() 字符串类型的代码执行:eval, exec, complie eval: 执行字符串类型的代码,并返回最终结果. print(eval('2+2')) # 4 n = 4 print(eval('n+4')) # 8 eval('print(6

python基础12_匿名_内置函数

一个二分查找的示例: # 二分查找 示例 data = [1, 3, 6, 7, 9, 12, 14, 16, 17, 18, 20, 21, 22, 23, 30, 32, 33, 35, 36, 66] def binary_search(dataset, find_num): print(dataset) if len(dataset) > 1: mid = int(len(dataset) / 2) if dataset[mid] == find_num: # find it print

Python基础第十一天——内置函数的补充、内置函数与lambda、递归

一.拾遗 1.生成器表达式形式的多个函数之间的协同工作. 例:做一包子吃一个包子 优点:更省内存. 以上例子的原理: 重点★★★★★ 源代码: import time import random # 装饰器 def init(func): '''生成器表达式的初始化''' def wrapper(*args,**kwargs): g=func(*args,**kwargs) next(g) return g return wrapper def cook(people,count): '''定义

python补充最常见的内置函数

最常见的内置函数是: print("Hello World!") 数学运算 abs(-5)                         # 取绝对值,也就是5 round(2.6)                       # 四舍五入取整,也就是3.0 pow(2, 3)                        # 相当于2**3,如果是pow(2, 3, 5),相当于2**3 % 5 cmp(2.3, 3.2)                   # 比较两个数的大小