python的特色:lamda

python的特色:lamda



[Copy to clipboard] [ - ]
CODE:
a = [-4, -3, -2, -1, 1, 2, 3, 4]
b = filter(a, lambda x: x > 0)
print b
# 结果为[1,2,3,4]

其实上面的例子的功能是这样的:

[Copy to clipboard] [ - ]
CODE:
def cond(x):
     return x > 0

a = [-4, -3, -2, -1, 1, 2, 3, 4]
b = filter(a, cond)
print b
# 结果为[1,2,3,4]

很强大哦


QUOTE:
原帖由 cobrawgl 于 2008-8-15 19:25 发表
很强大哦

爱生活
爱python
你能不能发点实质点的啊.
一天到晚就知道这样装装.
竟然说我水.还要举报我.
没见过你这样的人.
也是哦,要是真想发新手教程,就发在一个帖子里好了……
[i for i  in [-4, -3, -2, -1, 1, 2, 3, 4] if i > 0]
filter正在被废弃,python的lambda也只支持表达式,比较死板


QUOTE:
原帖由 jiangpeng311 于 2008-8-15 22:35 发表
if i > 0]
filter正在被废弃,python的lambda也只支持表达式,比较死板

怪不得在DIP中没有看到这种用法,原来要废弃啊。


QUOTE:
原帖由 jjj137 于 2008-8-15 22:38 发表

怪不得在DIP中没有看到这种用法,原来要废弃啊。

Python Cookbook 1.11 就说的这个问题
http://www.linuxforum.net/forum/ ... hon&main=495944

呵呵,我原来的程序中还用过map呢,赶紧改过来~