关于python:列表元素列表的组合

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()可以使用较短的版本,但不建议使用此函数。