;。【】DAY14、递归,匿名函数
一、三元运算符
三元运算符也称三目运算符,就是if .....else.....语法糖
前提:if 和 else 只有一条语句
例:a = 20
b = 30
res = a if a > b else b #求最大值
三元运算符的结果不一定要与条件直接有关系
二、推导式:列表(元组)与字典的转换语法糖
1、列表(元组)推导式
dic = {'a':1,'b':2,'c':3}
res = [(k, v) for k , v in dic .items()]
print(res) #[('a',1),('b',2),('c',3)]
元组直接在得到的列表的基础上tuple转一下就可以了
2、字典推导式
l = [('a',1),('b',2),('c',3)]
res = {k: v for k ,v in l}
print res #dic = {'a':1,'b':2,'c':3}
案例:
range 可以被推导为列表
res_ls = [arg for arg in range(10)]
print(res) # [0,1,2,3,4,5,6,7,8,9]
迭代出可解压为单列容器的就可以推导出字典
res_dic = {v: k for k, v in enumrate('abc')}
print(res_dic) #{'a': 0 , 'b' : 1 , 'c' : 2}
3、列表推导式格式:
[k for k in iter if 筛选条件]
三、递归:回溯与递推
回溯:询问答案的过程
递推:推出答案的过程
1、前提:
回溯到一个有具体结果的值,开始递推
回溯与递推的条件要有规律
2、递归本质:函数的自我调用
def a():
global count
count += 1
if count > 50:
return
a()
a() #自己调自己
def b():
c()
def c():
d()
def d():
b()
b() #间接调自己,一旦形成循环调用,就产生了递归
四、匿名函数:没有名字的函数,没有函数体,只有一个返回值
语法:lambda 参数列表 一个返回值表达式
lambda x,y : x + y
应用场景:
1、匿名函数函数地址可以被一个变量接受,该变量就可以作为函数名来使用,但就违背了匿名的初衷
2、结合内置函数来使用:内置函数某些参数需要一个函数地址,可以赋值一个有名函数名,也可以直接赋值匿名函数
;。【】DAY14、递归,匿名函数的更多相关文章
- Python入门之三元表达式\列表推导式\生成器表达式\递归匿名函数\内置函数
本章目录: 一.三元表达式.列表推导式.生成器表达式 二.递归调用和二分法 三.匿名函数 四.内置函数 ================================================ ...
- day 15递归 匿名函数
三元表达式 目的是简化书写 局限性:三元表达式智能简化仅有两个分支的if判断,而且这个判断无论是否成立都必须要返回值 res = True if age >=18 else False 递归: ...
- day13 内置函数二 递归,匿名函数,二分法
.匿名函数(名字统一叫lambda) .语法 lambda 参数:返回值 .参数可以有多个,用逗号隔开 .只能写一行,执行结束后直接返回值 4返回值和正常函数一样,可以是任意值 .列: f=lambd ...
- python函数3-函数嵌套/递归/匿名函数
2 .函数递归: 3.匿名函数
- (转)Javascript匿名函数的写法、传参、递归
(原)http://www.veryhuo.com/a/view/37529.html (转)javascript匿名函数的写法.传参和递归 javascript匿名函数的写法.传参和递归 http: ...
- (转)javascript匿名函数的写法、传参和递归
(原)http://www.veryhuo.com/a/view/37529.html (转)javascript匿名函数的写法.传参和递归 http://www.veryhuo.com 2011-0 ...
- python协程函数、递归、匿名函数与内置函数使用、模块与包
目录: 协程函数(yield生成器用法二) 面向过程编程 递归 匿名函数与内置函数的使用 模块 包 常用标准模块之re(正则表达式) 一.协程函数(yield生成器用法二) 1.生成器的语句形式 a. ...
- python之旅:三元表达式、列表推导式、生成器表达式、函数递归、匿名函数、内置函数
三元表达式 #以下是比较大小,并返回值 def max2(x,y): if x > y: return x else: return y res=max2(10,11) print(res) # ...
- python基础编程: 编码补充、文件操作、集合、函数参数、函数递归、二分查找、匿名函数与高阶函数
目录: 编码的补充 文件操作 集合 函数的参数 函数的递归 匿名函数与高阶函数 二分查找示例 一.编码的补充: 在python程序中,首行一般为:#-*- coding:utf-8 -*-,就是告诉p ...
- 递归函数, 匿名函数, yield from
递归函数 函数执行流程 http://pythontutor.com/visualize.html#mode=edit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 ...
随机推荐
- SQL中# 与$ 的区别
区别: (1)#将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号.如:order by #user_id#,如果传入的值是id,则解析成的sql为order by "id&quo ...
- v8 GC机制
1.为什么要分代 V8是Chrome浏览器的javascript解释器,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能.你先想想,如果没有分代,那 ...
- bootstrap-treeview 树形菜单带复选框以及级联选择
<div id="searchTree"></div> <script> var treeData = [{ text: "Paren ...
- c++模板特化偏特化
模板为什么要特化,因为编译器认为,对于特定的类型,如果你对某一功能有更好地实现,那么就该听你的. 模板分为类模板与函数模板,特化分为全特化与偏特化.全特化就是限定死模板实现的具体类型,偏特化就是模板如 ...
- Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee
双击 勾上蓝色保存
- 拉勾网爬取全国python职位并数据分析薪资,工作经验,学历等信息
首先前往拉勾网“爬虫”职位相关页面 确定网页的加载方式是JavaScript加载 通过谷歌浏览器开发者工具分析和寻找网页的真实请求,确定真实数据在position.Ajax开头的链接里,请求方式是PO ...
- 在windows下搭建汇编编程环境
汇编语言程序搭建masm+debug 下载链接 dosbox:链接:https://pan.baidu.com/s/1TgkfU-d5w6Nz9TOYro1pYw 密码:mp83 masm:链接:ht ...
- 持续代码质量管理-SonarQube-7.3简单使用
安装了SonarQube以及Sonar Scanner之后,就需要那代码检测了.当然为了方便我们使用已有现成的demo,知道到对应的git地址下载即可. 1. sonar-examples下载 htt ...
- SpringBoot2.0之四 简单整合MyBatis
从最开始的SSH(Struts+Spring+Hibernate),到后来的SMM(SpringMVC+Spring+MyBatis),到目前的S(SpringBoot),随着框架的不断更新换代,也为 ...
- 3.20 总结 java程序流程控制