我有三个由其他函数生成的列表。假设现在他们是:嵌套列表的组合
x = ['d', 'e']
g = ['1', '2']
y = ['f', g]
正如你所看到的,g
是y
一部分。我正试图获得三个列表元素的所有组合。我试图要对此有两种方式:
方式一:
l = []
l.append([a]+[b] for a in x for b in y)
另一种方法使用itertools:
import itertools
l = list(itertools.product([a for a in x], [b for b in y]))
这两种方式产生以下组合:
[('d', 'f'), ('d', ['1', '2']), ('e', 'f'), ('e', ['1', '2'])]
但我想得到的是:
[('d', 'f'), ('d', '1'), ('d','2'), ('e', 'f'), ('e', '1'), ('e','2')]
另外,当例如x
为空时,我仍然没有得到任何组合,当我仍然期望获得其余两个列表的元素组合。
你为什么不只是压扁y个第一和那么使用'itertools.product'? – BrenBarn