You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python递归实现嵌套列表单元素替换的全量结果生成函数开发

解决方案

直接上实现代码:

def generate_replacements(lst, replacement):
    results = []
    for idx, elem in enumerate(lst):
        # 复制原列表,防止修改原始数据
        current_copy = lst.copy()
        if isinstance(elem, list):
            # 递归处理子列表,拿到子列表的所有单元素替换结果
            sub_results = generate_replacements(elem, replacement)
            # 把每个替换后的子列表放回原位置,生成完整新列表
            for sub in sub_results:
                temp_copy = current_copy.copy()
                temp_copy[idx] = sub
                results.append(temp_copy)
        else:
            # 普通元素直接替换
            current_copy[idx] = replacement
            results.append(current_copy)
    return results

测试验证

用你给出的输入测试:

test_input = ['a', 'b', ['c', ['e', 'f']]]
output = generate_replacements(test_input, 1)
for item in output:
    print(item)

输出结果和预期完全一致:

[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. 遍历每个元素:对输入列表的每一个元素逐一处理,确保每个可能的替换位置都被覆盖。
  2. 区分元素类型:
    • 若当前元素是普通值:直接替换成目标值,生成新列表加入结果。
    • 若当前元素是子列表:递归调用函数处理这个子列表,得到子列表所有单元素替换后的版本,再把这些子列表替换回原位置,生成完整的新列表加入结果。
  3. 复制列表:每次处理都复制原列表(或子列表),避免修改原始数据,保证每个结果都是独立的新列表,不会互相干扰。

内容的提问来源于stack exchange,提问作者Mr Saltine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 07:50:30