导入运算符时出错 (Python)
Posted
技术标签:
【中文标题】导入运算符时出错 (Python)【英文标题】:Errors while importing Operator (Python) 【发布时间】:2021-10-28 17:08:01 【问题描述】:在导入 Operator 并收到错误的几次尝试后,我有点困惑。除了几个示例之外,我还分享了一个 python 文档链接以供参考。
我期望下面发生的是 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 上都运行了这些检查,但两者都给了我错误 - 这可能是 itertools
的问题吗?
以下来自 Python 文档。我用的是第一种情况:
operator.mul(a, b)
我会分享给你参考:Here
----> operator.mul(a, b)
operator.__mul__(a, b)
Return a * b, for a and b numbers.
为什么这不起作用,我该如何解决?
【问题讨论】:
您能与我们分享您的预期输出吗?你想在这里实现什么?恐怕这可能是xyproblem.info 【参考方案1】:operator
是它自己的模块,不是itertools
的一部分:
import itertools
import operator
请注意,itertools.accumulate
不会修改给定的可迭代对象。它返回一个您在上面没有使用的新对象。考虑将其分配给一个新变量:
data = [3, 4, 6, 2, 1, 9, 0, 7, 5, 8]
accumulated_list = list(itertools.accumulate(data, operator.mul))
【讨论】:
以上是关于导入运算符时出错 (Python)的主要内容,如果未能解决你的问题,请参考以下文章
Pyspark - 将数据保存到 Hive 表时出错“未解析的运算符'InsertIntoTable HiveTableRelation'”