匿名函数:为了解决那些功能很简单的需求而设计的一句话函数
返回一个数的平方
使用函数方式
def func1(x)
return x*x
用匿名函数方式
fun1 = lambda x : x**2
print(fun1(5))
执行输出: 25
函数名 = lambda 参数 :返回值
#参数可以有多个,用逗号隔开
#匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值
#返回值和正常的函数一样可以是任意数据类型
将下面的函数改为匿名函数
def func2(x,y):
return x + y
func2 = lambda x,y:x+y
lambda 函数与内置函数的结合。
map 函数
map(function, iterable, ...)
用map来处理字符串列表,把列表中所有人都变成sb,比方alex_sb
name=['oldboy','alex','wusir']
cname = map(lambda a:a+"_sb",name)
for i in cname:
print(i)
执行输出:
oldboy_sb
alex_sb
wusir_sb
2,用map来处理下述l,然后用list得到一个新的列表,列表中每个人的名字都是sb结尾
l=[{'name':'alex'},{'name':'y'}]
cname = map(lambda a:a['name']+'sb',l)
li = []
for i in cname:
li.append(i)
print(li)
3.用filter来处理,得到股票价格大于20的股票名字
shares={
'IBM':36.6,
'Lenovo':23.2,
'oldboy':21.2,
'ocean':10.2,
}
name = filter(lambda a:shares[a] >20,shares)
for i in name:
print(i)
4,有下面字典,得到购买每只股票的总价格,并放在一个迭代器中。
结果:list一下[9110.0, 27161.0,…]
portfolio = [
{'name': 'IBM', 'shares': 100, 'price': 91.1},
{'name': 'AAPL', 'shares': 50, 'price': 543.22},
{'name': 'FB', 'shares': 200, 'price': 21.09},
{'name': 'HPQ', 'shares': 35, 'price': 31.75},
{'name': 'YHOO', 'shares': 45, 'price': 16.35},
{'name': 'ACME', 'shares': 75, 'price': 115.65}]
cname = map(lambda a:a['shares']*a['price'],portfolio)
for i in cname:
print(i)