如何在Python 3.3.2中导入itertools

2024-03-29 10:26:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我在3.3.2版本的Mac上运行python(通过IDLE,尽管我不确定这是什么),而且由于某些原因,当我键入from itertools import *时,它不允许我使用类似chaincombinations的命令。另外,我似乎无法导入numpy,所以我想可能是我把安装搞砸了。问候

编辑

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

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

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


Tags: fromimport命令版本numpy编辑示例chain
1条回答
网友
1楼 · 发布于 2024-03-29 10:26:58

首先,你在这里其实没有问题。itertools.chain()不返回列表,而是返回一个iterable对象。这是最好的,因为它是懒惰的(值在需要时才计算),这是更有效的内存。

值得注意的是,如果这是导入模块时出现的问题,则会出现异常,并且会发生在from itertools import chain行。

你可以很高兴地循环它,就像你想任何其他的iterable:

>>> 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']

相关问题 更多 >