将None用作itertools.accumulate的初始

形状

它会是不错的使用itertools.accumulateinitial=None字面意思是它应该开始None

例如:

from typing import Optional, Iterable
from itertools import islice, accumulate

def f(a: Optional[A], b: B) -> A:
    pass

b_s: Iterable[B] = [...]
_a_s = accumulate(b_s, f, initial=None)  # doesn't work!
a_s = list(islice(_a_s, 1, None))

失败是因为initial=None告诉accumulate第一个元素用作初始元素,然后从那里去,所以f最终将被两个B参数调用。

有谁知道解决这个问题的简单方法?
我目前的计划是使用False,但是接下来我还有很多要讲的要解释我对MyPy所做的事情。

user2357112支持Monica

最好的选择可能是chain将值添加到可迭代的输入中:

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在itertools.accumulate中使用初始参数?

可以将__init__用作初始化的常规方法,而不用作构造函数吗?

itertools.accumulate但尝试用str.join替换lambda

相当于Clojure的“减少”或python的itertools.accumulate的Javascript

使用itertools.accumulate计算后缀最大值

如何在itertools.accumulate中定义自己的func参数?

将项目初始化为Git存储库,并将其用作多个用户的母版

在C ++中,将参数包用作初始化列表是一种不好的做法吗?

如何正确地将布尔值初始化为用作“开关”的变量

使用 itertools.accumulate 函数时舍入列表中的值

Python,累加“ itertools.accumulate”对象不支持项目分配错误

可以将std :: transform替换为std :: accumulate吗?

如果我们将swrevealview用作初始视图控制器,如何将swrevealview设置为第三视图控制器

当我尝试将None用作查询的null时出现PyMongo NoneType错误

在将函数用作构造函数时,在初始化属性时遇到了这个运算符的困扰。我的代码如下

展开std :: tuple用作类的初始化程序

如何修复用作初始化错误的数组?

用作自己的初始化程序的未初始化变量的行为是什么?

用 None 初始化熊猫数据框

使用 Box<None> 值初始化结构

初始化scala Option时,“ Package None不是值”

我可以将向量作为initial_sum和其他函数传递给std :: accumulate吗?

将视频用作墙纸

将Emacs用作IDE

将sed用作括号

将QML StackView重置为初始状态

是否将int初始化为0?

将变量初始化为 np 数组

将String的值初始化为函数