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

Python函数无法返回多个值?深度优先搜索函数仅返回首个元素问题求助

问题原因

你的函数存在两个返回值结构不一致的分支:

  • 搜索过程中命中目标状态(state in goalStates判断为真)时,函数直接返回单个值state,没有包装为列表
  • 仅当遍历完所有节点未找到目标时,函数才会返回三元素列表[initialState , exploredCount , visitedCount]

你调用时默认所有返回结果都是三元素列表,直接执行ans[0]。如果函数命中了找到目标的分支,返回的state本身是可迭代对象(比如列表、字符串、元组)时,ans[0]实际取的是state的第一个元素,这就是你只能拿到第一个元素的原因。

修复方案

优先选择统一返回结构的方案,把命中目标时的返回逻辑也修改为和未找到时结构一致的列表:

# 把原代码中的
if state in goalStates:
    return state
# 修改为
if state in goalStates:
    return [state, exploredCount, visitedCount]

修改后调用逻辑可以保持不变,不管是否找到目标,返回结果都是三元素列表,不会再出现取值异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 16:27:04