我正在使用在某些地方可能具有“模糊”值的列表。列表足够小,实现回溯搜索似乎很愚蠢。目前,我在列表中使用包含可能值的子列表来表示不明确的值。例如,列表:
[1, 2, [3,4]]
可以是列表[1,2,3]
或[1,2,4]
。列表中可能有多个不明确的值,尽管模糊元素本身可能不包含含糊不清的元素。给定一个含有不明确值的列表,我正在尝试生成列表可能代表的所有可能列表的列表。上一个列表应返回[[1,2,3],[1,2,4]]
。
有优雅的方法吗?我试图递归地向后构建每个列表并附加到一个空列表,但我不能完全围绕如何做它。
答案 0 :(得分:2)
您可以使用itertools.product
,但您必须稍微修改源列表:
>>> import itertools
>>> l = [[1], [2], [3, 4]]
>>> list(itertools.product(*l))
[(1, 2, 3), (1, 2, 4)]