Python 3.x python3中的置换

Python 3.x python3中的置换,python-3.x,itertools,Python 3.x,Itertools,我不知道如何让置换返回实际置换,而不是 我尝试了很多不同的方法,但都没有成功。我使用的代码来自itertools导入置换,然后是置换([1,2,3])。谢谢 这可能没有回答您的问题(它似乎缺少“and not”之后的部分),但从您的代码中,您可能看到的是itertools.permutations迭代器的repr。您可以像访问普通列表一样遍历该对象,以访问所有项目。如果要将其转换为列表,可以将其包装在list中: >>> from itertools import permut

我不知道如何让置换返回实际置换,而不是
我尝试了很多不同的方法,但都没有成功。我使用的代码来自itertools导入置换,然后是置换([1,2,3])。谢谢

这可能没有回答您的问题(它似乎缺少“and not”之后的部分),但从您的代码中,您可能看到的是
itertools.permutations
迭代器的
repr
。您可以像访问普通列表一样遍历该对象,以访问所有项目。如果要将其转换为列表,可以将其包装在
list
中:

>>> from itertools import permutations
>>> permutations([1, 2, 3])
<itertools.permutations object at 0x1e67890>
>>> list(permutations([1, 2, 3]))
[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]

itertools.permutations
是一个生成器,这意味着您必须像这样使用它来检索结果:

for permutation in itertools.permutations([1,2,3]):
   do_stuff_with(permutation)
或者,也可以将它们全部放在一个列表中:

list(itertools.permutations([1,2,3]))
或者,不太方便:

generator = itertools.permutations([1,2,3])
generator.__next__()

这应该非常有效。

非常感谢你们两位!对于这个不完整的问题,我表示歉意,我打算准确地复制您所指出的内容。@Jared一点问题也没有,欢迎访问该网站:)如果其中一个答案对您有帮助,您可以单击该答案分数旁边的小复选标记“接受”它。这表明一个答案解决了您的问题,并基本上将一个问题标记为完整。祝你万事如意!
generator = itertools.permutations([1,2,3])
generator.__next__()
from itertools import permutations

#iteration
for p in permutations([1,2,3]):
    print(p)