[英]Generating combinations of elements of 2 lists in sets of 3 in python
我在下面有 2 个列表
list_1 = ['A','B','C']
list_2 = ['D','E','F']
尝试生成组合以复制以下 output
(AD, BE, CF), (AD, BF, CE), (AE, BD, CF), (AE, BF, CD), (AF, BD, CE) (AF, BE, CD)
到目前为止,我已经能够使用 itertools 创建组合。
list = [list_1, list_2]
combination = [p for p in itertools.product(*list)]
这给了我
[('A', 'D'),
('A', 'E'),
('A', 'F'),
('B', 'D'),
('B', 'E'),
('B', 'F'),
('C', 'D'),
('C', 'E'),
('C', 'F')]
但不确定如何进一步进行。
只有zip
第一个列表和第二个列表的所有排列:
from itertools import permutations
def combs(l1, l2):
for p in permutations(l2, len(l2)):
yield list(map(''.join, zip(l1, p)))
# or simpler:
# yield [a+b for a, b in zip(l1, p)]
>>> list(combs(list_1, list_2))
[['AD', 'BE', 'CF'], ['AD', 'BF', 'CE'], ['AE', 'BD', 'CF'], ['AE', 'BF', 'CD'], ['AF', 'BD', 'CE'], ['AF', 'BE', 'CD']]
一些文档:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.