鱼C论坛

 找回密码
 立即注册
查看: 2675|回复: 2

关于map函数有点不解

[复制链接]
发表于 2014-7-12 14:47:30 | 显示全部楼层 |阅读模式

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

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

x
5. 还记得zip吗?使用zip会将两数以元祖的形式绑定在一块,例如:

01.>>> list(zip([1, 3, 5, 7, 9], [2, 4, 6, 8, 10]))

02.[(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)]

03.
复制代码但如果我希望打包的形式是灵活多变的列表而不是元祖(希望是[[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]这种形式),你能做到吗?(采用map和lambda表达式)
我本来是使用搜集参数的偶然的情况下不小心删掉了*得到正确结果,我的疑问是这个map的加工所有可迭代的具体对象是什么为不是
n[0][0]而是n[0]
  1. n = zip([1,3,5,7,9],[2,4,6,8,10])
  2. print(list(map(lambda x : list(x), n)))
  3. print(list(map(lambda *x : list(x), n)))
复制代码

  1. [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]
  2. [[(1, 2)], [(3, 4)], [(5, 6)], [(7, 8)], [(9, 10)]]
复制代码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-7-12 15:40:42 | 显示全部楼层
不大明白你的意思,第二个我跑出来的结果是[],符合预期。

>>> n = zip([1,3,5,7,9],[2,4,6,8,10])
>>> print(list(map(lambda x : list(x), n)))
[[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]
>>> print(list(map(lambda *x : list(x), n)))
[]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-7-12 15:52:38 | 显示全部楼层
小甲鱼 发表于 2014-7-12 15:40
不大明白你的意思,第二个我跑出来的结果是[],符合预期。

>>> n = zip([1,3,5,7,9],[2,4,6,8,10])

好吧我在linux上做的python命令和指定pyton3显示的不一样:dizzy:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-23 21:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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