目录

1. 匿名函数

在我们需要一个函数但又不想费神的去命名一个函数的场合下使用,这就是匿名函数

1 f = lambda x,y,z:x+y+z2 defF(x,y,z):3 return x+y+z4

5 f = lambda x:x if x % 2 != 0 else x + 100

6 print(f(10)) #1100

1. lambda只是一个表达式,函数体比def简单很多。2. lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。3. lambda表达式是起到一个函数速写的作用。允许在代码内嵌入一个函数的定义。4. 格式:lambda的一般形式是关键字lambda后面跟一个或多个参数,紧跟一个冒号,之后是一个表达式。

f= lambda x,y,z:x+y+zprint(f(1,2,3)) #6

my_lambda= lambda arg : arg + 1

print(my_lambda(10)) #11

匿名函数

2. 三元运算

三元运算就是在赋值变量的时候可以直接加判断,然后赋值

1. 三元运算格式: result=值1 if x

2. 作用:三元运算,又称三目运算,主要作用是减少代码量,是对简单的条件语句的缩写

name= 'Tom' if 1 == 1 else 'fly'

print(name)#运行结果: Tom

f= lambda x:x if x % 2 != 0 else x + 100

print(f(10)) #110

三元运算

1 name = 'Tom' if 1 == 1 else 'fly'

2 print(name)3 #运行结果: Tom

4

5 如果条件成立,if 前面的效果实现

3. 高阶函数

map

第一个参数接收一个函数名,第二个参数接收一个可迭代对象

利用map,lambda表达式将所有偶数元素加100

#-*- coding:utf8 -*-

l1= [11,22,33,44,55]

ret= map(lambda x:x-100 if x % 2 != 0 else x + 100,l1)print(list(ret))#运行结果: [-89, 122, -67, 144, -45]

#lambda x:x-100 if x % 2 != 0 else x + 100#如果 "if x % 2 != 0" 条件成立返回 x-100#不成立:返回 x+100

defF(x):if x%2 !=0:return x-100

else:return x+100ret=map(F,l1)print(list(ret))

map()函数

格式:map(func, iter)

说明:

接收两个参数:一个函数和一个可迭代对象

返回值:返回一个生成器

生成器内容是将func依次作用域iter每个元素的处理结果deffunc(x):return x *xprint map(func,[1,2,3,4,5])

注解:1.list里的每个元素都会走一遍f(x)方法2.输出结果是[1,4,9,16,25]

map()函数

filter

filter()函数可以对序列做过滤处理,就是说可以使用一个自定的函数过滤一个序列,把序列的每一项传到自定义的过滤函数里处理,并返回结果做过滤。

最终一次性返回过滤后的结果。

filter()函数有两个参数:

第一个,自定函数名,必须的

第二个,需要过滤的列,也是必须的

利用 filter、lambda表达式 获取l1中元素小于33的所有元素 l1 = [11, 22, 33, 44, 55]

l1= [11,22,33,44,55]

a = filter(lambda x: x<33, l1)

print(list(a))

#上面lambda表达式换成函数形式如下:

defF(x):if x<33:returnx

b=filter(F,l1)print(list(b))

filter( )函数

格式:filter(func, iter)

说明:

参数是一个函数和一个可迭代对象

返回一个生成器

将func依次作用于iter中的元素,返回值为真的将会保留,为假的将会过滤掉

lt= [1, 2, 3, 4, 5]#提取偶数

f = filter(lambda x: x%2==0, lt)print(list(f))

注解:lt中数据会走一遍匿名函数就是除以2余数为零,然后filter过滤符合要求(偶数)的打印出来,不符合要求的过滤掉

输出结果为2,4

filter

reduce

字符串反转

#-*- coding:utf8 -*-

'''使用reduce将字符串反转'''s= 'Hello World'

from functools importreduce

result= reduce(lambda x,y:y+x,s)## 1、第一次:x=H,y=e => y+x = eH## 2、第二次:x=l,y=eH => y+x = leH## 3、第三次:x=l,y=leH => y+x = lleH

print( result ) #dlroW olleH

reduce()函数

格式:reduce(func, iter)

说明:

接收两个参数,一个函数和一个可迭代对象

首先取前两个元素作为func的参数,计算完的结果与第三个元素继续使用func处理,直至结束

返回处理的最后结果from functools importreduce

lt= [1, 2, 3, 4, 5]#求和#s = reduce(lambda x,y: x+y, lt)#转换为12345

s = reduce(lambda x,y: x*10+y, lt)print(s)

输出结果为12345

reduce()函数

sorted

经典面试题 列表排序

students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]#[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]

print( sorted(students, key=lambda s: s[2], reverse=False) ) #按年龄排序#结果:[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]

deff(x):#('john', 'A', 15)

return x[2]print( sorted(students, key=f, reverse=False) ) #按年龄排序

对字典的value排序

d = {'k1':1, 'k3': 3, 'k2':2}#d.items() = [('k1', 1), ('k3', 3), ('k2', 2)]

a = sorted(d.items(), key=lambda x: x[1])print(a) #[('k1', 1), ('k2', 2), ('k3', 3)]

两个列表变成一个字典

L1 = ['k1','k2','k3']

L2= ['v1','v2','v3']print( list(zip(L1,L2)))#zip(L1,L2) : [('k1', 'v1'), ('k2', 'v2'), ('k3', 'v3')]#dict( [('k1', 'v1'), ('k2', 'v2'), ('k3', 'v3')] ) = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}

sorted()函数

sorted() 函数对所有可迭代的对象进行排序操作。

sort 与 sorted 区别:

sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。

list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

sorted 语法:

sorted(iterable[, cmp[, key[, reverse]]])

参数说明:

iterable--可迭代对象。

cmp-- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。

key--主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。

reverse-- 排序规则,reverse = True 降序 , reverse =False 升序(默认)。print(sorted([1,5,9,8,3]))

输出结果为 [1,3,5,8,9]

sorted()函数

python四大高阶函数_四大高阶函数相关推荐

  1. 什么是高绩效团队_建立高绩效团队的方式1

    什么是高绩效团队 When I arrived at Quantum Talent in September 2019, although I was excited about the idea o ...

  2. java 高阶函数_谈谈高阶函数给我们带来了什么。

    什么是高阶函数 一句话解释的话,就是函数可以作为参数以变量的方式持有,引用,构造和使用 一些文章我随手搜的,大家可以看看,它本身的概念并不复杂. 高阶函数-廖雪峰 高阶函数-wiki 其实现在主流语言 ...

  3. 表示python代码块的是_编写高质量Python代码的59个有效方法,你用过几个

    欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练.PDF电子文档.面试集锦.学习资料等. 这个周末断断续续的阅读完了<Effectiv ...

  4. js 匿名函数_编写高质量箭头函数的5个最佳做法

    作者:Dmitri Pavlutin译者:前端小智 来源:dmitripavlutin.com 箭头功能值得流行.它的语法简洁明了,使用词法绑定绑定 this,它非常适合作为回调.在本文中,通过了解决 ...

  5. subtotal函数_星期五的Excel函数:将总计为SUBTOTAL的筛选列表

    subtotal函数 The Excel SUM function does a great job of adding numbers on a worksheet, and it's probab ...

  6. 编写分段函数子函数_编写自己的函数

    编写分段函数子函数 PYTHON编程 (PYTHON PROGRAMMING) In Python, you can define your own functions. 在Python中,您可以定义 ...

  7. 复平面上gamma函数_神奇的Gamma函数 (中)

    Gamma 函数欣赏 Each generation has found something of interest to say about the gamma function. Perhaps ...

  8. js 实现2的n次方计算函数_密码杂凑函数的基本性质探讨

    密码学研究的宗旨是保证数据和通信的机密性.完整性和认证性,其中完整性和认证性的实现依赖于一类关键的密码学函数---密码杂凑函数.密码杂凑函数通常用来计算数据的短"指纹"(也称杂凑值 ...

  9. mysql独有的函数_数据库之MySQL函数(一)

    一.数学函数 1.绝对值函数 ABS(x) :返回 x 的绝对值 mysql> select ABS(2),ABS(-2.3),ABS(-22); 返回的结果如下: 数学学得好的大佬应该知道(本 ...

最新文章

  1. 漫画|小白到大神程序员的进阶,都是什么生活状态?
  2. 怎样学好python-如何学习 Python
  3. CPU,寄存器,内存三者的关系
  4. C++ #define详解
  5. Python之路(第十七篇)logging模块
  6. 一像素约束(选中所需约束,切换到类处,选择此类,运行时就是0.5的约束)
  7. Keil综合(01)一些常见文件类型的作用和功能说明
  8. 红宝书新日本语能力考试N1~N5全套资料PDF分享 ​​
  9. 时间工具类封装以及时间戳之间的相互转换
  10. 【2022年】安装vm虚拟机unbuntu 服务器版
  11. 已解决(Python运行报错)SyntaxError: expression cannot contain assignment, perhaps you meant “==“?
  12. 怎样快速提升自身的编程水平?
  13. STM32模拟USB多点触控屏
  14. 英语口语232之每日十句口语
  15. 华为云视频点播服务全面开放公测!限量发放VIP免费名额中...
  16. pynq-z2 使用PL做流水灯
  17. vmware_无法连接虚拟机vmx提前退出
  18. php 判断app浏览器打开,手机浏览器下判断是否安装某app,并判断是否打开该应用...
  19. java实现给MultipartFile添加水印
  20. 怎么做到的?八个场景就能搞定智慧园区建设!

热门文章

  1. 解决方案 | MySQL DBA主从复制出错怎么办?
  2. 嘉年华专访 | 我有故事,你有酒吗?
  3. 华为云VSS漏洞扫描服务之开源组件漏洞检测能力
  4. 在高并发环境下该如何构建应用级缓存
  5. 又到一年“粽子节”,快来测测你包的粽子颜值几分
  6. 5G多输入多输出技术,到底是个啥东东?
  7. 遥感影像处理有高招,“专治”各类花式并发的述求!
  8. 基于React-Native0.55.4的语音识别项目全栈方案
  9. Android笔记 隐式意图demo
  10. Service混合开启笔记(startService+bindService)