Python 中 N 个列表的所有可能排列

pythonserver side programmingprogramming

如果我们有两个列表,并且需要将第一个列表的每个元素与第二个列表的每个元素组合起来,那么我们有以下方法。

使用 For 循环

在这种直接的方法中,我们创建一个列表列表,其中包含每个列表中元素的排列。我们在另一个 for 循环中设计一个 for 循环。内部 for 循环引用第二个列表,外部跟随引用第一个列表。

示例

A = [5,8]
B = [10,15,20]

print ("The given lists : ", A, B)
permutations = [[m, n] for m in A for n in B ]

输出

运行上述代码得到以下结果:

The given lists : [5, 8] [10, 15, 20]
permutations of the given values are : [[5, 10], [5, 15], [5, 20], [8, 10], [8, 15], [8, 20]]

使用itertools

itertools 模块有一个名为 product 的迭代器。它的作用与上面的嵌套 for 循环相同。在内部创建嵌套 for 循环以提供所需的产品。

示例

import itertools

A = [5,8]
B = [10,15,20]

print ("The given lists : ", A, B)
result = list(itertools.product(A,B))
print ("permutations of the given lists are : " + str(result))

输出

运行上述代码得到以下结果:

The given lists : [5, 8] [10, 15, 20]
permutations of the given values are : [(5, 10), (5, 15), (5, 20), (8, 10), (8, 15), (8, 20)]

相关文章