用列表理解代替reduce?

GVR希望消除所有功能性的东西(lambda地图减少
过滤器)哪种对python有意义,列表comprexens是
从我拥有的
收集,他们可以用
残废的Lambdas可以.
但是这呢:
减少(lambda x,y:x*y+x,[1,2,3,4,5,6])
我将如何在列表求解中表达这一点?

# 回答1


实际上,GVR宣布" Lambda,过滤和地图将留下来(
后两个更改,返回迭代器而不是列表).
仅减少将从3.0标准库中删除.你可以
从功能上导入它."
在此处查看完整文章:http://www.artima.com/weblogs/viewpost.jsp?thread=98196
路易斯
8月25日,7:08*pm,ssecorp
# 回答2


Ssecorp Schrieb:
你不能. Afaik您错了 - GVR不愿消除
功能性的东西. http://www.artima.com/weblogs/viewpost.jsp?thread=98196 http://www.python.org/dev/dev/dev/peps/peps/pep-3099/
diez
# 回答3


更正:
我猜我上面提供的链接是旧新闻...
在最近的Python 3000 FAQ中,GVR说:
问:如果您要杀死Repard(),为什么要保留Map()和Filter()?
答:我不是因为我讨厌功能性编程而杀死REDY();我是
杀死它,因为几乎所有使用delid()的代码都不那么可读
比使用循环和累加器编写的同一件事
多变的.另一方面,map()和filter()通常很有用,并且
当与预先存在的功能(例如,内置)一起使用时,它们是
比列表理解或发电机表达式更清晰. (不要使用
这些虽然有一个lambda;然后列表理解更清晰,并且
快点.)
因此,似乎只有减少将被消除.
路易斯
# 回答4


路易斯·冈萨雷斯·施里布(LuisM.GonzálezSchrieb):
没有.从您提供的链接中:
"""
仅减少将从3.0标准库中删除.你可以
从功能上导入它.
"""
diez
# 回答5


路易斯·冈萨雷斯(LuisM.González),引用吉多(Guido):
(因此,减少现在在Itertools中).尝试从手中撬起
Haskell程序员:-)
我认为他们认为褶皱比明确的循环更清楚.
再见,
# 回答6


在2008年8月26日星期二00:53:35 +0200,Diez B. Roggisch写道:
没有.从您提供的链接中:
"""
仅减少将从3.0标准库中删除.你可以
从功能上导入它.
"""
Functools不在标准库中???
*眨眼*
认真地说,我认为Guido的意思是"内置".因为我不同意他
REDAD()很难阅读,我不同意累加器更容易
利用.但是由于减少只是进口,我很满意.
- -
史蒂文

标签: python

添加新评论