三元表达式
三元表达式指的是一种特殊的表达式,这种表达式包含三个元素
表达式中只有三个元素
1 判断成立的返回值
2 判断条件
3 判断不成立的返回值
三元表达式仅仅式一种简便写法,但是简化必然有其局限性,其只能针对这种简单的if分支,并且无论是否成立都会返回一个结果
递归
递归指的是函数的递归调用。简单的说就是函数的执行过程中直接或间接的调用了该函数本身
递归的两个阶段
回溯:不断调用函数的过程称之为回溯,需要注意的是一定要在某个条件成立时结束调用,否则将无限递归
递推:一层一层返回结果的过程称之为递推
总结
必须为递归设置一个结束条件
使用递归时每一次调用都应该使用使问题的规模有所减少,这样才能保证最终得到正确的结果
python中没有尾递归优化(避免递归调用吧栈区撑爆)
递归的优势在于可以极大的减少代码,并且代码结构清晰了很多
二分查找法
原理
先得到一个中间值,比较是不是你要找的如果是直接返回
如果不是,那就把列表拆分为两半进行比较
如果你要找的比中间值大找右边,否则找左边
匿名函数
匿名指的就是没有名字
其最明显的特点就是没有名字,只能临时使用一次用完就没了
匿名函数不需要括号,并且支持所有类型的参数
关键字lambda
函数体不能写return,会自动将执行结果返回
函数体只能有一个表达式且不能换行
当你的函数函数体只有一行表达式时并且仅使用一次时就可以使用匿名函数
更多的时与内置函数联用(max,min,sorted,map,filter,reduce)
map 映射
用于从一个迭代对象中取出所有数据,进行一系列操作后,在放回新列表
filter 过滤
用于从一堆数据中过滤一些不满足条件的数据,提供一个函数,要函数的返回值是bool类型,True表示保留,False就过滤
reduce 合并
是把列表中的数据进行合并每次传给你两个值 n 和 n+1 个
列表生成式
一个快速产生列表的表达式
语法 [表达式 for i in 可迭代 if 条件]
生成器表达式
一个快速创建生成器的表达式
语法与列表生成式类似将中括号换位小括号