2

我在 Mac 版本 3.3.2 上运行 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结果?

4

1 回答 1

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']
于 2013-05-30T19:54:52.590 回答