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

如何从函数返回多个字典?解决返回后字典为空问题

解决函数返回多个字典的问题

嘿,我完全懂你的困扰!从函数里返回单个字典你已经会了,但多个字典的情况其实也没那么复杂,咱们用几种实用的方法来搞定它,顺便帮你排查下之前拿到空字典的可能原因~

方法1:直接返回元组(最常用)

Python函数支持直接返回多个值,本质上返回的是一个元组,调用的时候直接拆包就能拿到每个字典:

def fetch_multiple_dicts():
    # 模拟生成两个字典
    user_profile = {"username": "Glasgow", "level": 10}
    user_stats = {"posts": 24, "likes": 156}
    # 直接返回两个字典,括号可以省略
    return user_profile, user_stats

# 调用时拆包到两个变量里
profile, stats = fetch_multiple_dicts()
print(profile)  # 输出: {'username': 'Glasgow', 'level': 10}
print(stats)    # 输出: {'posts': 24, 'likes': 156}

方法2:返回字典列表(适合数量不固定的场景)

如果你的字典数量是动态的(比如从循环里生成的),把它们放进列表里返回会更灵活:

def generate_dynamic_dicts(count):
    dict_list = []
    for i in range(count):
        dict_list.append({"id": i+1, "content": f"item_{i+1}"})
    return dict_list

# 调用后可以遍历或按索引访问
all_dicts = generate_dynamic_dicts(3)
for d in all_dicts:
    print(d)
# 输出三个字典:{'id':1,...}, {'id':2,...}, {'id':3,...}

方法3:返回嵌套字典(适合有明确分类的场景)

如果每个子字典有清晰的分类,把它们放进一个大字典里,用键来区分会更直观:

def get_user_full_data():
    return {
        "basic_info": {"name": "Glasgow", "age": 30},
        "contact": {"email": "glasgow@example.com", "phone": "123456789"},
        "hobbies": ["reading", "coding"]  # 顺便提一句,这里也能混着其他类型
    }

# 调用后通过键直接获取对应字典
user_data = get_user_full_data()
print(user_data["basic_info"])
print(user_data["contact"])

关于你遇到的「外部拿到空字典」问题

大概率是函数里没有正确返回字典:

  • 可能你只在函数里创建了字典,但写漏了return语句(Python函数默认返回None);
  • 或者return的位置不对(比如放在循环内部,提前返回了空值);
  • 也可能是字典本身在函数里就没被正确赋值。

只要确保函数最后明确return了你需要的字典集合,外部就能拿到正确的数据啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:58:31