鱼C论坛

 找回密码
 立即注册
查看: 1467|回复: 6

[已解决]第21讲的第五题不太明白

[复制链接]
发表于 2020-3-13 13:54:57 | 显示全部楼层 |阅读模式

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

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

x
pyhton萌新一枚,最近看到了第21讲并且正在完成课后练习。
看到第五题的代码后有点不太明白。以下为原题:

#5.

“还记得 zip 吗?使用 zip 会将两数以元祖的形式绑定在一块,例如:
list(zip([1, 3, 5, 7, 9], [2, 4, 6, 8, 10]))  ------> [(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)]

但如果我希望打包的形式是灵活多变的列表而不是元祖(希望是 [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]] 这种形式),你能做到吗?(采用 map 和 lambda 表达式)“

小甲鱼给出的答案是:list(map(lambda x, y : [x, y], [1, 3, 5, 7, 9], [2, 4, 6, 8, 10]))

这行代码中lambda x,y后跟着的:[x,y],[1, 3, 5, 7, 9], [2, 4, 6, 8, 10]是什么意思呢?为什么实现出来就会成为[[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]?
而且我对map这个bif依然有点一知半解,希望有大神可以来解答一下
最佳答案
2020-3-13 14:33:07
map()函数有至少两个参数,第一个参数是一个函数,经常用匿名函数lambda作为第一个参数;后面的参数是序列,序列个数由前面函数的参数决定。
例如这里的这个语句:map(lambda x, y : [x, y], [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
map有三个参数,第一个参数:lambda x, y : [x, y],后面还有两个参数是两个序列,供x和y遍历用的,即x遍历[1, 3, 5, 7, 9],,y遍历[2, 4, 6, 8, 10]。

你对匿名函数好像也不太理解。lambda x, y : [x, y],就是函数有两个参数x,y,返回值是列表[x, y]。写成函数的型式如下:
def func(x,y):
    return [x,y]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-13 13:57:05 From FishC Mobile | 显示全部楼层
将x,y两个元素构成列表
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-3-13 14:00:36 | 显示全部楼层
1,map用法:https://www.runoob.com/python/python-func-map.html
2,因为lambda里写了啊,lambda x, y: [x,y] <- 这个就是返回值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-3-13 14:33:07 | 显示全部楼层    本楼为最佳答案   
map()函数有至少两个参数,第一个参数是一个函数,经常用匿名函数lambda作为第一个参数;后面的参数是序列,序列个数由前面函数的参数决定。
例如这里的这个语句:map(lambda x, y : [x, y], [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
map有三个参数,第一个参数:lambda x, y : [x, y],后面还有两个参数是两个序列,供x和y遍历用的,即x遍历[1, 3, 5, 7, 9],,y遍历[2, 4, 6, 8, 10]。

你对匿名函数好像也不太理解。lambda x, y : [x, y],就是函数有两个参数x,y,返回值是列表[x, y]。写成函数的型式如下:
def func(x,y):
    return [x,y]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-13 20:02:59 | 显示全部楼层
sunrise085 发表于 2020-3-13 14:33
map()函数有至少两个参数,第一个参数是一个函数,经常用匿名函数lambda作为第一个参数;后面的参数是序列 ...

懂了懂了,多谢老哥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-13 20:03:33 | 显示全部楼层
qiuyouzhi 发表于 2020-3-13 14:00
1,map用法:https://www.runoob.com/python/python-func-map.html
2,因为lambda里写了啊,lambda x, y:  ...

好的多谢老哥!我好好看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-13 20:11:06 | 显示全部楼层
a1324809812 发表于 2020-3-13 20:03
好的多谢老哥!我好好看看

有帮助设个最佳答案~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 20:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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