1

我正在使用在某些地方可能具有“模棱两可”值的列表。这些列表足够小,以至于实现回溯搜索似乎很愚蠢。目前,我在列表中使用包含可能值的子列表来表示不明确的值。例如,列表:

[1, 2, [3,4]]

可以是列表[1,2,3][1,2,4]. 列表中可能有多个不明确的值,尽管不明确的元素本身可能不包含不明确的元素。给定一个包含不明确值的列表,我正在尝试生成一个列表,其中包含该列表可以表示的所有可能列表。上一个列表应该返回[[1,2,3],[1,2,4]]

有没有一种优雅的方式来做到这一点?我试图以递归方式向后构建每个列表并附加到一个空列表,但我无法完全理解如何做到这一点。

4

1 回答 1

2

您可以使用itertools.product,但您必须稍微修改您的源列表:

>>> import itertools
>>> l = [[1], [2], [3, 4]]
>>> list(itertools.product(*l))
[(1, 2, 3), (1, 2, 4)]
于 2013-09-08T21:41:55.787 回答