导入运算符时出错 (Python)

Errors while importing Operator (Python)

在尝试导入 Operator 并收到错误后,我有点困惑。除了几个示例,我还共享了一个 python 文档 link 以供参考。

我期望下面发生的是 operator 将 运行 乘积并在 data 列表中乘以 3 * 4 答案将开始 [3, 12....] 然后将 12 乘以下一个元素 '6' 得到 [3, 12, 72...]。然而,在这里导入 Operator 并没有像预期的那样工作?

我期望这个问题的输出是:

[3, 12, 72, 144, 144, 1296, 0, 0, 0, 0]

运行 PythonTutor.com 中的以下代码给我一个错误:

ImportError: cannot import name 'operator'
from itertools import operator

data = [3, 4, 6, 2, 1, 9, 0, 7, 5, 8]
list(accumulate(data, operator.mul))

我在 Jupyter notebook 中遇到了相同类型的错误 运行:

ImportError                               Traceback (most recent call last)
<ipython-input-1-bc61652bebb8> in <module>
----> 1 from itertools import operator
      2 
      3 data = [3, 4, 6, 2, 1, 9, 0, 7, 5, 8]
      4 list(accumulate(data, operator.mul))

ImportError: cannot import name 'operator' from 'itertools' (unknown location)

我已经拼写检查了大约 100 次,并且我在 PythonTutor 和 Jupyter NB 上 运行 了这些,两者都给我错误 - 这可能是 [= 的问题吗21=]?

以下来自 Python 文档。我使用的是第一种情况:

operator.mul(a, b)

分享给大家参考:Here

   ----> operator.mul(a, b)
    operator.__mul__(a, b)
    Return a * b, for a and b numbers.

为什么这不起作用,我该如何解决?

operator 是它自己的模块,不是 itertools 的一部分:

import itertools
import operator

请注意,itertools.accumulate 不会修改给定的可迭代对象。它 returns 一个你在上面没有使用的新对象。考虑将其分配给一个新变量:

data = [3, 4, 6, 2, 1, 9, 0, 7, 5, 8]
accumulated_list = list(itertools.accumulate(data, operator.mul))