如何在Python中置换两个列表

时间:2015-11-17 12:45:52

标签: python

以下是两个列表示例

list = [["mo", "thu"], ["we", "fri"], ["mo", "mo"]]
list2 = [["mo", "fri", "fri"], ["we", "we"]]

所以这些列表是随机排列的。我在这里给出了两个例子。我想要做的是计算这些列表可以排列的所有可能方式。在它的列表[1] *列表[2] *列表[3]的级别上。所有可能的组合。我希望达到的一个较小的例子就是:

list3 = [["we", "thu"],["fri", "thu"]]

- >

[["we", "fri"], ["we", "thu"], ["thu", "fri"], ["thu", "thu"]]

此外,列表是随机的,因此列表或嵌套列表中的元素数量可能会有所不同。我可以通过很多代码来解决这个问题,但我希望有一个更简单的方法。

干杯

1 个答案:

答案 0 :(得分:8)

你想要的不清楚,但也许你想要的是你的清单中的笛卡儿产品?如果是这样,那很简单:

list3 = [["we", "thu"],["fri", "thu"]]
import itertools
final_list = [list(v) for v in itertools.product(*list3)]
## [['we', 'fri'], ['we', 'thu'], ['thu', 'fri'], ['thu', 'thu']]