Python程序无法正常运行

时间:2013-09-15 17:11:47

标签: python itertools

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

   import itertools

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

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

2 个答案:

答案 0 :(得分: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。在python shell中print不是必需的,因为它回显返回值,但是当从 .py 文件print执行程序时,需要查看任何输出。

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

答案 1 :(得分: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)]