如何在Python 3.3.2中导入itertools

时间:2013-05-30 19:35:30

标签: python numpy module

我正在运行python(通过IDLE,虽然我不确定那是什么)在Mac,版本3.3.2上,出于某种原因,当我输入from itertools import *时,它不允许我然后使用chaincombinations等命令。另外我似乎无法导入numpy所以我想我可能搞砸了安装。此致

修改

作为一个最小的工作示例:

>>> from itertools import chain
>>> chain('abc','def')
<itertools.chain object at 0x34c2130>

但是,输出应该是a b c d e f。所以我不确定我是否需要print结果?

1 个答案:

答案 0 :(得分:4)

首先,你这里实际上没有问题。 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']