我正在用Python构建一个应用程序,需要在其中定义以下类型的函数:
generate_replacements(['a', 'b', ['c', ['e', 'f']]], 1)
预期输出是输入列表的所有可能版本,其中仅替换了一个元素
[
[1, 'b', ['c', ['e', 'f']]],
['a', 1, ['c', ['e', 'f']]],
['a', 'b', 1],
['a', 'b', [1, ['e', 'f']]],
['a', 'b', ['c', 1]],
['a', 'b', ['c', [1, 'f']]],
['a', 'b', ['c', ['e', 1]]]
]
我知道递归是可行的方法,但我真的被困在找出如何最好地开始。
1条答案
按热度按时间2izufjch1#
你可以从列表中生成替换项,然后如果你注意到你正在替换一个列表,也可以通过函数递归地传递这个列表,如果你使用生成器,这会变得简单一些:
这给予: