Python从多个不同长度的列表中获取唯一对

假设在Python中我有3个列表:长度可变的a,b,c.例如 :

a=[1,2,3]
b=[4,5,6]
c=[7,8]

我想获得上述3个列表中两个元素的每个唯一组合,即. e.

[1,4],[1,5],[1,6],[1,7],[1,8],[2,4],[2,5] …以及非唯一组合3个列表(例如[1,4,7],[1,4,8],…).

我看过使用itertools的solution here,这对于2个列表来说是完美的;但是,当包含第n个列表时,此解决方案将不再起作用,因为唯一组合的长度为n.

这是我尝试过的:

import itertools

a=[1,2,3]
b=[4,5,6]
c=[7,8]

d=list(itertools.product(a,b,c))

[(1, 4, 7), (1, 4, 8), (1, 5, 7), (1, 5, 8), (1, 6, 7), (1, 6, 8), (2, 4, 7), (2, 4, 8), (2, 5, 7), (2, 5, 8), (2, 6, 7), (2, 6, 8), (3, 4, 7), (3, 4, 8), (3, 5, 7), (3, 5, 8), (3, 6, 7), (3, 6, 8)]

注意:以上仅是一个示例,该解决方案应适用于n个长度可变的列表,并且可能在不同的列表中具有相同的值…对我该怎么做的任何想法将不胜感激!

上一篇:Python3标准库:itertools迭代器函数


下一篇:python-带有islice的生成器循环中的内存泄漏