我有两个元组:
t1 = ('A', 'B')
t2 = ('C', 'D', 'E')
Run Code Online (Sandbox Code Playgroud)
我想知道如何在元组之间创建组合,因此结果应该是:
AC, AD, AE, BC, BD, BE
Run Code Online (Sandbox Code Playgroud)
编辑
运用
list(itertools.combinations('abcd',2))
Run Code Online (Sandbox Code Playgroud)
我可以为给定的字符串生成组合列表:
[('a', 'b'), ('a', 'c'), ('a', 'd'), ('b', 'c'), ('b', 'd'), ('c', 'd')]
Run Code Online (Sandbox Code Playgroud)
如果我插入元组而不是字符串,则会发生以下错误:
TypeError: sequence item 0: expected string, tuple found
Run Code Online (Sandbox Code Playgroud)
有什么建议怎么办?
itertools.product完全符合您的要求:
>>> import itertools
>>> t1 = ('A', 'B')
>>> t2 = ('C', 'D', 'E')
>>> list(itertools.product(t1, t2))
[('A', 'C'), ('A', 'D'), ('A', 'E'), ('B', 'C'), ('B', 'D'), ('B', 'E')]
>>> [''.join(x) for x in itertools.product(t1, t2)]
['AC', 'AD', 'AE', 'BC', 'BD', 'BE']
Run Code Online (Sandbox Code Playgroud)