Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用None作为itertools.accumulate的首字母_Python_Python 3.x_Functional Programming_Itertools - Fatal编程技术网

Python 使用None作为itertools.accumulate的首字母

Python 使用None作为itertools.accumulate的首字母,python,python-3.x,functional-programming,itertools,Python,Python 3.x,Functional Programming,Itertools,最好使用itertools.acculate和initial=None来字面意思是它应该以None开始 例如: 从输入导入可选,可编辑 从itertools导入islice,累积 def f(a:可选[a],b:b)->a: 通过 b_s:Iterable[b]=[…] _a_s=累计(b_s,f,initial=无)#不起作用! a_s=列表(islice(_a_s,1,无)) 这会失败,因为initial=None告诉accumulate使用第一个元素作为首字母并从那里开始,因此f最终将使

最好使用
itertools.acculate
initial=None
来字面意思是它应该以
None
开始

例如:

从输入导入可选,可编辑
从itertools导入islice,累积
def f(a:可选[a],b:b)->a:
通过
b_s:Iterable[b]=[…]
_a_s=累计(b_s,f,initial=无)#不起作用!
a_s=列表(islice(_a_s,1,无))
这会失败,因为
initial=None
告诉
accumulate
使用第一个元素作为首字母并从那里开始,因此
f
最终将使用两个
B
参数调用

有人知道解决这个问题的简单方法吗?

我目前的计划是使用
False
,但接下来我还要解释我对MyPy所做的事情。

您最好的选择可能是
将值链接到输入表上:

output = accumulate(chain([None], iterable), f)