鱼C论坛

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

关于lambda,map还有list的问题

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

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

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

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


为什么两个结果不一样啊  
map不是遍历吗?
谢谢
小甲鱼最新课程 -> https://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]]
小甲鱼最新课程 -> https://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的话
小甲鱼最新课程 -> https://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我觉得是无法实现的
小甲鱼最新课程 -> https://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)

谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

哇,你这个数学条件用的好,赞
  1. list3=[[x,y] for x in [1, 3, 5, 7, 9] for y in [2, 4, 6, 8, 10] if y-x == 1]
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

加了啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

厉害了,我就没想到
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-22 14:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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