关于lambda 的一个语句

mldxs 2013-03-16 01:09:55
l = []
ll = []
lll = []
ll.append(1)
ll.append(2)
lll.append(3)
lll.append(4)
l.append(ll)
l.append(lll)

#for x in out:
# return x[1]


a = lambda out: [x[1] for x in out]
print a(l)


这条语句要如何解释啊!
...全文
131 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mldxs 2013-03-19
  • 打赏
  • 举报
回复
引用 3 楼 feiyuren 的回复:
Python code?1a = lambda out: [x[1] for x in out] 这个式子能正确运行吗 x已经是out当中的一个元素了,x[1]不能这么使用吧
可以运行
mldxs 2013-03-18
  • 打赏
  • 举报
回复
引用 1 楼 bugs2k 的回复:
貌似等价于 Python code?12345def a(out): r = [] for x in out: r.append(x[1]) return r 或者 Python code?12def a(out): return [x[1] for x in out]
测试结果,貌似等于上面的。 能解释一下吗?
feiyuren 2013-03-18
  • 打赏
  • 举报
回复
楼上解释的很仔细,我看错问题内容了
慧钦 2013-03-18
  • 打赏
  • 举报
回复

l = []
ll = []
lll = []
ll.append(1)
ll.append(2)
lll.append(3)
lll.append(4)
l.append(ll)
l.append(lll)
l,ll,lll这三个都是list结构,其中l中的元素是list结构,它装着ll,lll,具体内容如下: ll = [1, 2] --》 ll[1] = 2 lll = [3, 4] --> lll[1] = 4 l = [[1,2], [3, 4]] --> l[0] = [1, 2] l[1] = [3, 4] --> l[0][1] = 2 l[1][1] = 4 a = lambda out: [x[1] for x in out] 相当于: def a(out): r = [] for x in out: # 当把l传进来时,x 依次被赋值为 [1, 2] [3, 4] r.append(x[1]) # 再把x的第2个元素添加到结果中,即依次添加整数 2, 4 return r # 所以最后就把 r = [2, 4] 这个list返回 print(a(l)) 的就结果就是打印 [2, 4]
feiyuren 2013-03-18
  • 打赏
  • 举报
回复

a = lambda out: [x[1] for x in out]
这个式子能正确运行吗 x已经是out当中的一个元素了,x[1]不能这么使用吧
bugs2k 2013-03-16
  • 打赏
  • 举报
回复
貌似等价于
def a(out):
   r = []
   for x in out:
       r.append(x[1])
   return r
或者
def a(out):
    return [x[1] for x in out]

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧