我有三個由其他函數生成的列表。假設現在他們是:嵌套列表的組合
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