1、三元運算符函數
三元運算符也稱三目運算符,就是if .....else.....語法糖spa
前提:if 和 else 只有一條語句遞歸
例:a = 20it
b = 30容器
res = a if a > b else b #求最大值匿名函數
三元運算符的結果不必定要與條件直接有關係基礎
2、推導式:列表(元組)與字典的轉換語法糖變量
一、列表(元組)推導式lambda
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轉一下就能夠了
二、字典推導式
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}
三、列表推導式格式:
[k for k in iter if 篩選條件]
3、遞歸:回溯與遞推
回溯:詢問答案的過程
遞推:推出答案的過程
一、前提:
回溯到一個有具體結果的值,開始遞推
回溯與遞推的條件要有規律
二、遞歸本質:函數的自我調用
def a():
global count
count += 1
if count > 50:
return
a()
a() #本身調本身
def b():
c()
def c():
d()
def d():
b()
b() #間接調本身,一旦造成循環調用,就產生了遞歸
4、匿名函數:沒有名字的函數,沒有函數體,只有一個返回值
語法:lambda 參數列表 一個返回值表達式
lambda x,y : x + y
應用場景:
一、匿名函數函數地址能夠被一個變量接受,該變量就能夠做爲函數名來使用,但就違背了匿名的初衷
二、結合內置函數來使用:內置函數某些參數須要一個函數地址,能夠賦值一個有名函數名,也能夠直接賦值匿名函數