我试图在python中以4的序列组合10个数字。
import itertools
combs = (itertools.permutations ([1,2,3,4,5,6,7,8,9,10], 4))
当我运行它时,它表示开始然后跳过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)]