[TOC] 有名函數(掌握) 我們之前定的函數都是有名函數,它是基於函數名使用。 from func from func from func 匿名函數(掌握) 匿名函數,他沒有綁定名字,使用一次即被收回,加括弧既可以運行。 (x, y) 3 與內置函數聯用(掌握) 匿名函數通常與max()、min( ...
目錄
有名函數(掌握)
我們之前定的函數都是有名函數,它是基於函數名使用。
def func():
print('from func')
func()
func()
func()
print(func)
from func
from func
from func
<function func at 0x108e32400>
匿名函數(掌握)
匿名函數,他沒有綁定名字,使用一次即被收回,加括弧既可以運行。
lambda x, y: x+y
<function __main__.<lambda>(x, y)>
res = (lambda x, y: x+y)(1, 2)
print(res)
3
與內置函數聯用(掌握)
匿名函數通常與max()、min()、filter()、sorted()方法聯用。
salary_dict = {
'nick': 3000,
'jason': 100000,
'tank': 5000,
'sean': 2000
}
1.如果我們想從上述字典中取出薪資最高的人,我們可以使用max()方法,但是max()預設比較的是字典的key。
- 首先將可迭代對象變成迭代器對象
- res=next(迭代器對象),將res當做參數傳給key指定的函數,然後將該函數的返回值當做判斷依據
salary_dict = {
'nick': 3000,
'jason': 100000,
'tank': 5000,
'sean': 2000
}
print(f"max(salary_dict): {max(salary_dict)}")
def func(k):
return salary_dict[k]
print(f"max(salary_dict, key=func()): {max(salary_dict, key=func)}")
# 'nick', v1 = func('nick')
# 'jason', v2 = func('jason')
# 'tank', v3 = func('tank')
# 'sean', v4 = func('sean')
print(
f"max(salary_dict, key=lambda name: salary_dict[name]): {max(salary_dict, key=lambda name: salary_dict[name])}")
max(salary_dict): tank
max(salary_dict, key=func()): jason
max(salary_dict, key=lambda name: salary_dict[name]): jason
2.如果我們想從上述字典中取出薪資最低的人,我們可以使用min()方法,但是min()預設比較的是字典的key。