Python-从两个列表中配对,以使元素成对不相同

在本文中,我们将学习如何从两个列表中进行配对,以使没有相似的元素配对。请按照以下步骤解决问题。

  • 用元素初始化列表。

  • 如果列表中的对应元素不相同,则遍历列表并将该对添加到列表中。

  • 打印结果。

示例

让我们看一下代码。

# 初始化列表
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)]

结论

如果运行上面的代码,则将得到以下结果。