如何列出所有可能的排列?
How to make a list of all possible permutations?
是否有一个函数可以生成列表列表的所有排列,同时保持它们的顺序?
例如:
func([[1, 2, 3], [10, 20, 30]])
产生:
[[1, 10], [1, 20], [1, 30], [2, 10], [2, 20], [2, 30], [3, 10], [3, 20], [3, 30]]
itertools 模块中有一个 product
函数,它就是这样做的:
from itertools import product
lst = [[1, 2, 3], [10, 20, 30]]
res = [list(i) for i in product(*lst)]
print(res)
因为你希望里面的项目也是列表,所以我使用list(i)
将product
给出的元组转换为列表。
输出:
[[1, 10], [1, 20], [1, 30], [2, 10], [2, 20], [2, 30], [3, 10], [3, 20], [3, 30]]
是否有一个函数可以生成列表列表的所有排列,同时保持它们的顺序?
例如:
func([[1, 2, 3], [10, 20, 30]])
产生:
[[1, 10], [1, 20], [1, 30], [2, 10], [2, 20], [2, 30], [3, 10], [3, 20], [3, 30]]
itertools 模块中有一个 product
函数,它就是这样做的:
from itertools import product
lst = [[1, 2, 3], [10, 20, 30]]
res = [list(i) for i in product(*lst)]
print(res)
因为你希望里面的项目也是列表,所以我使用list(i)
将product
给出的元组转换为列表。
输出:
[[1, 10], [1, 20], [1, 30], [2, 10], [2, 20], [2, 30], [3, 10], [3, 20], [3, 30]]