首页 > 编程语言 > 详细

Python练习-内置函数的应用

时间:2017-04-13 18:38:21      阅读:598      评论:0      收藏:0      [点我收藏+]

说真的,我感觉这几天egon没有睡好,或者是egon心里有事儿,练习给留的太过简单了

技术分享
 1 # 编辑者:闫龙
 2 # 用map来处理字符串列表,把列表中所有人都变成sb,比方alex_sb
 3 #name=[‘alex‘,‘wupeiqi‘,‘yuanhao‘] 既然都Somebody了,那么请给我一个不用egon的理由
 4 name=[egon,lin,hai,feng]
 5 print(list(map(lambda newname : newname+"_sb",name)))
 6 #以下为解读代码
 7 #将name列表传递给lambda匿名函数进行遍历,返回newname变量
 8 # 然后让newname变量中的值逐个+"_sb",最终将返回值传递给m
 9 m = map(lambda newname : newname+"_sb",name)
10 print(m)#<map object at 0x0000028FA3BA46A0>
11 l = list(m)#将m由map类型转为list类型,用于print打印
12 print(l)#[‘egon_sb‘, ‘lin_sb‘, ‘hai_sb‘, ‘feng_sb‘]
13 
14 
15 #用map来处理下述l,然后用list得到一个新的列表,列表中每个人的名字都是sb结尾
16 #l=[{‘name‘:‘alex‘},{‘name‘:‘y‘}]既然都Somebody了,那么请给我一个不用egon的理由
17 l=[{name:linhaifeng},{name:egon}]
18 print(list(map(lambda newname:newname["name"]+"_sb", l)))
19 #以下为解读代码
20 #将l列表传递给lambda匿名函数进行遍历,返回newname变量
21 # newname变量是({"name":"linhaifeng"},{"name":"egon"})
22 # 让newname逐个提取name对应的value逐个+"_sb",最终将返回值传递给m
23 m=map(lambda newname:newname["name"]+"_sb",l)
24 print(m)#<map object at 0x000001B7B24D4898>
25 l = list(m)#将m由map类型转为list类型,用于print打印
26 print(l)#[‘linhaifeng_sb‘, ‘egon_sb‘]
map函数练习

来回来去,练了好几遍,一开始还可以

技术分享
 1 # 编辑者:闫龙
 2 #用filter来处理,得到股票价格大于20的股票名字
 3 shares={
 4     IBM:36.6,
 5     Lenovo:23.2,
 6     oldboy:21.2,
 7     ocean:10.2,
 8 }
 9 #代码解读:
10 #变量fi接受filter筛选出来的结果
11 #匿名函数中price得到的是shares中的keys
12 # 也就是说如果要提取shares中的value,就必须要shares[price]
13 #大于20的全部返回给fi
14 fi=filter(lambda price:shares[price] > 20,shares)
15 print(list(fi))#将fi转型为list类型,打印
16 #[‘oldboy‘, ‘Lenovo‘, ‘IBM‘]
filter函数练习

然后发现,越来越无聊,越来越无聊,Somebody你要振作啊

技术分享
 1 # 编辑者:闫龙
 2 #如下,每个小字典的name对应股票名字,shares对应多少股,price对应股票的价格
 3 portfolio = [
 4     {name: IBM, shares: 100, price: 91.1},
 5     {name: AAPL, shares: 50, price: 543.22},
 6     {name: FB, shares: 200, price: 21.09},
 7     {name: HPQ, shares: 35, price: 31.75},
 8     {name: YHOO, shares: 45, price: 16.35},
 9     {name: ACME, shares: 75, price: 115.65}
10 ]
11 #1:map来得出一个包含数字的迭代器,数字指的是:购买每支股票的总价格
12 m = map(lambda sumprice:{sumprice["name"]:sumprice["price"]*sumprice["shares"]},portfolio)
13 print(list(m))
14 
15 #2:基于1的结果,用reduce来计算,购买这些股票总共花了多少钱
16 from functools import reduce
17 m = map(lambda sumprice:sumprice["price"]*sumprice["shares"],portfolio)
18 r = reduce(lambda x,y:x+y,m)
19 print(r)
20 
21 #3:用filter过滤出,单价大于100的股票有哪些
22 fi = filter(lambda por:por["price"]>100,portfolio)
23 print(list(fi))
map/reduce/filter函数练习

完事儿了,自己搞吧!

Python练习-内置函数的应用

原文:http://www.cnblogs.com/DragonFire/p/6705392.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!