一、匿名函式
在定義函式的時候,不想給函式起乙個名字,這個時候就可以用lambda來定義乙個匿名函式
語法:變數名= lambda 引數:表示式
引數:可選,通常以逗號分隔的變數表示式形式,也就是位置引數表示式:不能包含迴圈、return,可以包含if…else…
注意:(1).表示式中不能包含 迴圈,return
(2).可以包含 if…else…語句.
(3).表示式計算的結果直接返回
1、建立乙個匿名函式
func=lambda: 3>2
ret=func()
print(ret)
同等正常函式
def func():
return 3 > 2
ret = func()
print(ret)
2、傳遞多個引數
匿名函式
func = lambda x, y: x + y
ret = func(1, 2) # 如果匿名函式有引數,呼叫匿名函式的時候需要傳遞實參。
print(ret)
正常函式
def func(x,y)
return x+y
ret=func(1,2)
print(ret)
3、使用if…else…語法比大小
匿名函式
func = lambda x, y: y if x < y else x
# 注意if和else 沒有 : 不能換行,if判斷體寫在判斷條件前面
ret = func(30, 20)
print(ret)
正常函式
def func(x, y):
if x < y:
return y
else:
return x
ret = func(30, 20)
print(ret)
4、使用 max函式求字典的最大值
dic =
def func(key):
return dic[key]
ret = max(dic, key=func) # 改變比較規則。最終返回的函式 字典的key值
print(ret)
使用匿名函式
ret = max(dic, key=lambda x: dic[x])
print(ret)
5、求 lst 中每乙個元素的平方值
lst = [1, 2, 4]
def square(num):
num2 = num * num
return num2
ret = map(square, lst) # 迭代器 1,4,16
for i in ret:
print(i)
用匿名函式求
ret = map(lambda num: num * num, lst)
for i in ret:
print(i)
6、過濾出列表中的所有奇數:
正常for迴圈
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
new_lst =
for i in lst:
if i % 2 == 1:
print(new_lst)
正常函式
def odd(num):
if num % 2 == 1:
return true
else:
return false
ret = filter(odd, lst)
print(list(ret))
使用匿名函式
ret = filter(lambda num: true if num % 2 == 1 else false, lst)
print(list(ret))
7、現有兩個元組((『a』),(『b』)),((『c』),(『d』)),請生成列表[,]
tup1 = (('a'), ('b'))
tup2 = (('c'), ('d'))
ret = zip(tup1, tup2)
lst =
ret2 = map(lambda tup: , ret)
for i in ret2:
print(i)
print(lst)
函式知識點
1.函式 函式就是一種封裝 2.定義函式 function 函式名 3.函式不會自動執行,需要被呼叫才可以執行 函式名 4.函式命名規則 與變數命名規則一致 1 以字母 開頭 2 可以包含數字 字母 3 區分大小寫 4 不能使用關鍵字和保留字 駝峰命名法 若名稱由多個單詞組成,則從第二個單詞開始,首...
函式知識點
今日主要內容 函式 一,函式的概念 函式就是對一些重複使用的功能的封閉 二,函式的組成部分 1,函式名 是程式使用函式的依據 2,函式體 是實現功能的具體 塊 3,函式返回值 功能實現的結果 4,函式引數 實現功能的條件 三,函式的定義 函式需要先定義,再呼叫 def 函式申明的關鍵字 例 def ...
建構函式知識點
1 建構函式必須與類名相同,並且不能有返回值 返回值也不能為void 若在建構函式前面加上void,編譯器會把它認為是方法,而不是建構函式 當然在new的時候,也不能自動呼叫 2 每個類可以有多個建構函式,如果人為定義了建構函式,編譯器不會建立預設的建構函式。3 建構函式在物件例項化的時候被自動呼叫...