Python|在两个列表中提取组合映射
有时,在使用Python列表时,我们可能会遇到一个问题,即我们有两个列表,并且需要在所有组合中找到所有可能的映射。这可能在数学问题中得到应用。让我们讨论一下可以解决这个问题的某种方法。
方法:使用zip() + product()
使用这些功能可以解决这个问题,并且需要两个步骤来执行它。在第 1 步中,我们使用product()
找到所有元素组合,作为第 2 步的一部分,我们使用zip()
与第 1 步的结果执行可能的配对并输出所需的结果。
# Python3 code to demonstrate working of
# Extract Combination Mapping in two lists
# using zip() + product()
from itertools import product
# initialize lists
test_list1 = [3, 4, 5]
test_list2 = ['x', 'y']
# printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
# Extract Combination Mapping in two lists
# using zip() + product()
res = list(list(zip(test_list1, ele)) for ele in product(test_list2, repeat = len(test_list1)))
# printing result
print("Mapped Combination result : " + str(res))
输出 :
The original list 1 is : [3, 4, 5]
The original list 2 is : [‘x’, ‘y’]
Mapped Combination result : [[(3, ‘x’), (4, ‘x’), (5, ‘x’)], [(3, ‘x’), (4, ‘x’), (5, ‘y’)], [(3, ‘x’), (4, ‘y’), (5, ‘x’)], [(3, ‘x’), (4, ‘y’), (5, ‘y’)], [(3, ‘y’), (4, ‘x’), (5, ‘x’)], [(3, ‘y’), (4, ‘x’), (5, ‘y’)], [(3, ‘y’), (4, ‘y’), (5, ‘x’)], [(3, ‘y’), (4, ‘y’), (5, ‘y’)]]