Combination of list of list elements
本问题已经有最佳答案,请猛点这里访问。
我想要一个列表,它是列表元素列表的组合例如:我的输入
1 | x = [['P'], ['E', 'C'], ['E', 'P', 'C']] |
输出应该是
1 | ['PEE','PEP','PEC','PCE','PCP','PCC']] |
任何帮助都非常感谢。
使用迭代工具
1 | [''.join(i) for i in itertools.product(*x)] |
注:假设最后一个应该是"PCC"
这是一个解决方案
1 2 3 4 5 | def comb(character_list_list): res = [''] for character_list in character_list_list: res = [s+c for s in res for c in character_list] return res |
在您的示例中,它给出了如预期的
1 2 | >>> comb([['P'], ['E', 'C'], ['E', 'P', 'C']]) ['PEE', 'PEP', 'PEC', 'PCE', 'PCP', 'PCC'] |
使用functools.reduce()可以使用较短的版本,但不建议使用此函数。