【发布时间】:2015-10-27 14:53:17
【问题描述】:
我创建了一个让我们说 0、1、2 的所有排列的列表
perm = list(itertools.permutations([0,1,2]))
这用于以特定顺序访问另一个列表中的索引。每次访问索引时都会弹出它。 当一个元素被弹出时,索引高于弹出元素索引的元素将向下移动一个位置。这意味着如果我想按索引 [0,1,2] 从列表中弹出,则会导致索引错误,因为当我到达它时索引 2 将不存在。因此,[0,1,2] 应该按 [0,0,0] 的顺序弹出。
更多例子是
[0,2,1] = [0,1,0]
[2,0,1] = [2,0,0]
[1,2,0] = [1,1,0]
现在这正在通过一系列检查来处理,我的问题是,是否有人知道将 itertools 生成的列表列表转换为所需列表的聪明方法:
[(0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), (2, 1, 0)]
[(0, 0, 0), (0, 1, 0), (1, 0, 0), (1, 1, 0), (2, 0, 0), (2, 1, 0)]
【问题讨论】:
标签: python algorithm list permutation combinatorics