鱼C论坛

 找回密码
 立即注册
查看: 2487|回复: 7

关于lambda,map还有list的问题

[复制链接]
发表于 2017-2-17 18:37:27 | 显示全部楼层 |阅读模式

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

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

x
list1=([1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
list2=list(map(lambda x,y: [x,y],[1, 3, 5, 7, 9], [2, 4, 6, 8, 10]))
list3=[[x,y] for x in list1[0] for y in list[1]]

为什么两个结果不一样啊  
map不是遍历吗?
谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-17 19:25:45 | 显示全部楼层
>>> list2=list(map(lambda x,y: [x,y],*([1, 3, 5, 7, 9], [2, 4, 6, 8, 10])))
>>> list2
[[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-17 19:29:57 | 显示全部楼层
SixPy 发表于 2017-2-17 19:25
>>> list2=list(map(lambda x,y: [x,y],*([1, 3, 5, 7, 9], [2, 4, 6, 8, 10])))
>>> list2
[[1, 2], [3, ...

如果不加也是可以的,我想问就是list3的结果怎么才能和list2 一样,如果用for的话
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-18 10:34:35 | 显示全部楼层
比如for i in range(1,4):
            for j in range (1,4):
                  print(i,j)
打印出的是11,12,13,21,22,23,31,32,33,相当于一个全排列,如果没有特别麻烦的语法用双层for我觉得是无法实现的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-18 18:50:42 | 显示全部楼层
^ambition 发表于 2017-2-18 10:34
比如for i in range(1,4):
            for j in range (1,4):
                  print(i,j)

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

使用道具 举报

 楼主| 发表于 2017-2-18 23:16:32 | 显示全部楼层
32269100 发表于 2017-2-18 22:52
list3用列表推导式可以,不过要加个if 条件: if y - x == 1

哇,你这个数学条件用的好,赞
list3=[[x,y] for x in [1, 3, 5, 7, 9] for y in [2, 4, 6, 8, 10] if y-x == 1]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-19 00:27:31 | 显示全部楼层
32269100 发表于 2017-2-18 23:20
你有加论坛的python QQ群吗?尾数0819的群

加了啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-19 22:46:02 | 显示全部楼层
32269100 发表于 2017-2-18 22:52
list3用列表推导式可以,不过要加个if 条件: if y - x == 1

厉害了,我就没想到
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-9 09:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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