python功能选择模块_python – 组合功能和功能模块

您的compose的实现对于python 3.2是有效的,如上述注释所述.

你给出的图书馆的大部分功能都是在

documentation中写的python等价物.

诸如地图和过滤器的功能已经在python中实现,也可以简单地表示为列表推导. Python有一个id函数返回一个对象的身份(作为整数),但是该库的id函数可以表示为lambda x:x.

您可能会感兴趣的另一个模块是itertools和functools,它们具有partial和reduce(与foldl类似,但参数顺序不一样).

以下是我在标准库中找不到的一些简单的实现:

from functools import reduce

def flip(f):

if not callable(f):

raise TypeError("Cannot filp a non-callable object")

def result(*args, **kw):

args = list(args)

args.reverse()

return f(*args, **kw)

return result

def ilast(i):

return reduce(lambda _, x: x, i)

def iscanl(f, v, seq):

yield v

for a in seq:

v = f(v, a)

yield v

def scanl(*args, **kw):

return list(iscanl(*args, **kw))

def foldl(*args, **kw):

return ilast(iscanl(*args, **kw))

# Or using reduce

#def foldl(f, v, seq):

# return reduce(f, seq, v)

def iscanr_reverse(f, v, seq):

return iscanl(flip(f), v, seq)

def scanr(*args, **kw):

result = list(iscanr_reverse(*args, **kw))

result.reverse()

return result

def foldr(*args, **kw):

return ilast(iscanr_reverse(*args, **kw))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值