intertools.combinations - 如何使用?

intertools.combinations - how to use?

这是我的代码:

import itertools
print(itertools.combinations('ABCD', 2))

我希望根据 intertools docs 输出 AB AC AD BC BD CD, 但我得到 <itertools.combinations object at 0x030A2A50>

怎么了?

list_comprehensionjoin 函数一起使用。

>>> import itertools
>>> print([''.join(i) for i in itertools.combinations('ABCD', 2)])
['AB', 'AC', 'AD', 'BC', 'BD', 'CD']
>>> 

它是生成器,因此只有在使用 next() 调用时才有价值。这是为了节省内存,值仅在需要时生成,因此您将 space 保存在内存中 - 一次只返回一个值。

这与 range 和 xrange 的情况相同。

使用print tuple(itertools.combinations('ABCD',2))将其转换为元组并强制一次生成所有值。