在本文中,我们将学习如何从两个列表中进行配对,以使没有相似的元素配对。请按照以下步骤解决问题。
用元素初始化列表。
如果列表中的对应元素不相同,则遍历列表并将该对添加到列表中。
打印结果。
让我们看一下代码。
# 初始化列表 list_1 = [1, 2, 3, 4, 5] list_2 = [5, 8, 7, 1, 3, 6] #配对 result = [(i, j) for i in list_1 for j in list_2 if i != j] # printing the result print(result)
如果运行上面的代码,则将得到以下结果。
输出结果
[(1, 5), (1, 8), (1, 7), (1, 3), (1, 6), (2, 5), (2, 8), (2, 7), (2, 1), (2, 3), (2, 6), (3, 5), (3, 8), (3, 7), (3, 1), (3, 6), (4, 5), (4, 8), (4, 7), (4, 1), (4, 3), (4, 6), (5, 8), (5, 7), (5, 1), (5, 3), (5, 6)]
我们也可以使用itertools模块解决问题。它提供了一种称为product的方法,该方法将所有元素配对。找到对后,我们可以过滤对。
让我们看一下代码。
#导入模块 import itertools #初始化列表 list_1 = [1, 2, 3, 4, 5] list_2 = [5, 8, 7, 1, 3, 6] # 配对 pairs = itertools.product(list_1, list_2) #过滤配对 result = [pair for pair in pairs if pair[0] != pair[1]] #打印结果 print(result)
如果运行上面的代码,则将得到以下结果。
输出结果
[(1, 5), (1, 8), (1, 7), (1, 3), (1, 6), (2, 5), (2, 8), (2, 7), (2, 1), (2, 3), (2, 6), (3, 5), (3, 8), (3, 7), (3, 1), (3, 6), (4, 5), (4, 8), (4, 7), (4, 1), (4, 3), (4, 6), (5, 8), (5, 7), (5, 1), (5, 3), (5, 6)]
如果运行上面的代码,则将得到以下结果。