1

我试图在 python 中获得 4 序列中的 10 个数字的组合。

   import itertools

   combs = (itertools.permutations ([1,2,3,4,5,6,7,8,9,10], 4))

当我运行它时,它说 start 然后跳过 2 行并且不做任何事情。你能告诉我有什么问题吗?

4

2 回答 2

2

itertools.permutations返回一个迭代器,从中获取项目,您可以使用list()或循环它。

演示:

list()

>>> list(itertools.permutations ([1,2,3], 2))
[(1, 2), (1, 3), (2, 1), (2, 3), (3, 1), (3, 2)]

for循环:

>>> for x in itertools.permutations ([1,2,3], 2):
...     print x
...     
(1, 2)
(1, 3)
(2, 1)
(2, 3)
(3, 1)
(3, 2)

print如果您想查看程序的任何输出,则需要yes 。在 python 中,shell print不需要,因为它回显返回值,但是当从.py文件 执行程序时,print需要查看任何输出。

import itertools
combs = list(itertools.permutations ([1,2,3,4,5,6,7,8,9,10], 4))
print combs
于 2013-09-15T17:14:58.290 回答
2

排列返回迭代器。您应该对其进行迭代以获取值。

import itertools
combs = itertools.permutations ([1,2,3,4,5,6,7,8,9,10], 4)
for xs in combs:
    print(xs)

或使用list以列表形式获取结果:

import itertools
combs = itertools.permutations ([1,2,3,4,5,6,7,8,9,10], 4)
list(combs) # => [(1,2,3,4), ...., (10,9,8,7)]
于 2013-09-15T17:15:10.307 回答