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))
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的python功能选择模块_python – 组合功能和功能模块的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: A16不是标配!消息称iPhone 14
- 下一篇: python柱状图挨在一起_echart