假设在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个长度可变的列表,并且可能在不同的列表中具有相同的值…对我该怎么做的任何想法将不胜感激!