gpt4 book ai didi

python - 在 python 中操作 itertools.permutations 的输出

转载 作者:太空宇宙 更新时间:2023-11-03 15:19:04 26 4
gpt4 key购买 nike

我想获取一个列表,例如 List = [1,2,2],并生成它的排列。我可以这样做:

NewList = [list(itertools.permutations(List))]

输出是:

[[(1, 2, 2), (1, 2, 2), (2, 1, 2), (2, 2, 1), (2, 1, 2), (2, 2, 1)]]

问题:itertools.permutations 返回一个长度为 1 的列表,其唯一条目是 List 的所有排列的列表。即:

NewList[0] == [(1,2,2),(1,2,2),(2,1,2),(2,2,1),(2,1,2),(2,2,1)]

NewList[1] 不存在。

我希望输出是一个列表,其中每个条目都是排列之一。也就是

NewList[0] == (1,2,2)
NewList[1] == (1,2,2)
NewList[2] == (2,1,2)
...
NewList[5] == (2,2,1)

问题:是否有一个命令可以以这种方式生成 List 的排列?如果做不到这一点,是否有一种方法可以访问 [list(itertools.permutations(List))] 的“单个元素”,以便我可以对它们进行操作?

最佳答案

>>> from itertools import permutations
>>> list(permutations([1,2,2]))
[(1, 2, 2), (1, 2, 2), (2, 1, 2), (2, 2, 1), (2, 1, 2), (2, 2, 1)]

您不需要再次将其放入列表中。即不要做 [list(permutations(...))] (通过做 [] 你正在制作一个嵌套列表,因此无法访问使用的元素testList[index],尽管您可以执行 testList[0][index],但最好将其保留为元组列表。)

>>> newList = list(permutations([1, 2, 2]))
>>> newList[0]
(1, 2, 2)
>>> newList[3]
(2, 2, 1)

现在您可以使用索引访问元素。

关于python - 在 python 中操作 itertools.permutations 的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17973328/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com