鱼C论坛

 找回密码
 立即注册
查看: 2029|回复: 3

[已解决]课后21讲习题4,关于map()和lambda()的复用

[复制链接]
发表于 2017-3-21 23:53:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
习题和答案看我贴的图。
一、我想知道小甲鱼lambda()这个怎么写出屌丝函数:
难道就是:
def ab(x, y):
     return [x, y]
二、map()我没深刻了解,求懂得人帮忙扫扫盲
最佳答案
2017-3-22 13:38:50
lambda表达式优点是能省去命名的烦恼,同时配合filter、map、reduce这些神奇的函数可以简化不少的代码
如果你说要随便写一个屌丝函数来替换这样一个方便好用的表达式,我实在是想不出如何做到,主要它是一个表达式啊,不是函数
然后map,map可以有多参数,第一个参数须得是一个函数,可以用定义好的函数或lambda表达式,后面的参数形式须得是列表类型,然后map()会并行地从各参数列表中取值,作为参数函数的参数(好tm拗口),最后将结果以列表的形式返回
如:

  1. a=[11,22,33]
  2. b=[44,55,66]
  3. c=[77,88,99]
  4. print map(lambda x,y,z:x*10000+y*100+z,a,b,c)
复制代码

输出结果:
  1. [114477, 225588, 336699]
复制代码

你应该注意到map是分别取a,b,c中的第一个值进行计算,然后是a,b,c的第二个值。。。这就是所谓的并行
map函数解析:https://my.oschina.net/zyzzy/blog/115096
其他同样神奇的语法:http://www.cnblogs.com/longdouhzt/archive/2012/05/19/2508844.html
TIM图片20170321234448.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-3-22 00:07:30 From FishC Mobile | 显示全部楼层
如图!
IMG_20170322_000107.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-3-22 09:45:14 | 显示全部楼层
  1. map(func, *iterables) --> map object
  2. |  
  3. |  Make an iterator that computes the function using arguments from
  4. |  each of the iterables.  Stops when the shortest iterable is exhausted.
复制代码


返回一个迭代器,一个由func函数将各个iterables中的值按照顺序计算得出的迭代器,当iterables中最短的迭代器被访问完之后停止计算,返回计算得出的迭代器

  1. >>> a = list(map(lambda x,y : x+y,[1,3,5,7,9],[2,4,6,8]))
  2. >>> a
  3. [3, 7, 11, 15]
复制代码


从两个list中依次取出值相加作为新生成的迭代器的值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-22 13:38:50 | 显示全部楼层    本楼为最佳答案   
lambda表达式优点是能省去命名的烦恼,同时配合filter、map、reduce这些神奇的函数可以简化不少的代码
如果你说要随便写一个屌丝函数来替换这样一个方便好用的表达式,我实在是想不出如何做到,主要它是一个表达式啊,不是函数
然后map,map可以有多参数,第一个参数须得是一个函数,可以用定义好的函数或lambda表达式,后面的参数形式须得是列表类型,然后map()会并行地从各参数列表中取值,作为参数函数的参数(好tm拗口),最后将结果以列表的形式返回
如:

  1. a=[11,22,33]
  2. b=[44,55,66]
  3. c=[77,88,99]
  4. print map(lambda x,y,z:x*10000+y*100+z,a,b,c)
复制代码

输出结果:
  1. [114477, 225588, 336699]
复制代码

你应该注意到map是分别取a,b,c中的第一个值进行计算,然后是a,b,c的第二个值。。。这就是所谓的并行
map函数解析:https://my.oschina.net/zyzzy/blog/115096
其他同样神奇的语法:http://www.cnblogs.com/longdouhzt/archive/2012/05/19/2508844.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 16:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表