作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Mac 上运行 python(通过 IDLE,虽然我不确定那是什么),版本 3.3.2,并且出于某种原因,当我键入 from itertools import *
it不允许我使用像 chain
和 combinations
这样的命令。此外,我似乎无法导入 numpy
所以我想我可能搞砸了安装。问候
作为一个最小的工作示例:
>>> from itertools import chain
>>> chain('abc','def')
<itertools.chain object at 0x34c2130>
但是,输出应该是a b c d e f
。所以我不确定是否需要打印
结果?
最佳答案
首先,你实际上没有问题。 itertools.chain()
不返回列表,它返回一个可迭代对象。这是更可取的,因为它是惰性的(直到需要时才计算值),这样内存效率更高。
值得注意的是,如果这是导入模块的问题,您就会遇到异常,并且它会发生在 from itertools import chain
行。
您可以像对待其他可迭代对象一样愉快地遍历它:
>>> from itertools import chain
>>> for item in chain('abc', 'def'):
... print(item)
...
a
b
c
d
e
f
这是使用它的最佳方式,因为它将是最有效的。如果您需要一个列表(您很可能不需要),您可以简单地使用内置的 list()
包装调用:
>>> list(chain('abc', 'def'))
['a', 'b', 'c', 'd', 'e', 'f']
关于python - 如何在 Python 3.3.2 中导入 itertools,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16844494/
我是一名优秀的程序员,十分优秀!