You need to enable JavaScript to run this app. Python递归提取嵌套列表唯一元素运行结果异常问题咨询
优惠活动
大模型
产品
解决方案
定价
更多

Python递归提取嵌套列表唯一元素运行结果异常问题咨询

问题原因分析
  • 核心逻辑漏洞:你在判断元素为列表时,虽然执行了递归调用unique(item),但没有将该调用返回的子列表唯一元素集合合并到当前层级的result中,所有嵌套层级的元素计算结果都被直接丢弃,只有最外层的非列表元素会被加入最终返回的集合,因此出现结果缺失的问题。
修正后的代码
def unique(L):
    '''
    Returns set of unique elements in nested list L
    Ex.      unique([ 2, 1, 4, [ 3, [3, 4], 2 ], [2, 5, 6], 4, [ 2, 1 ]])
    returns: {1, 2, 3, 4, 5, 6}
    '''
    
    result = set()
    for item in L:
        if isinstance(item, list):
            # 将递归得到的子列表元素合并到当前结果集
            result.update(unique(item))
        else:
            result.add(item)
    return result
验证测试

运行测试代码print(unique([ 2, 1, 4, [ 3, [3, 4], 2 ], [2, 5, 6], 4, [ 2, 1 ]])),即可得到正确输出{1, 2, 3, 4, 5, 6}。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 05:24:02