我试图在 python 中获得 4 序列中的 10 个数字的组合。
import itertools
combs = (itertools.permutations ([1,2,3,4,5,6,7,8,9,10], 4))
当我运行它时,它说 start 然后跳过 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
排列返回迭代器。您应该对其进行迭代以获取值。
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)]