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

Python中向列表添加函数后出现函数对象而非字典的原因解析

向列表添加函数后出现<function ...>而非预期字典的原因及解决方法

问题原因

你看到的<function add_new_country at 0x7fefd60e8310>是Python对函数对象的字符串表示,出现这个结果的核心原因是:

  • 直接写travel_log.append(add_new_country)时,你并没有执行函数生成字典,而是把add_new_country这个函数本身当作一个对象添加到了列表里。Python中函数也是一种对象,打印时就会输出这种包含内存地址的标识。
  • 另外你原本的函数逻辑也不符合需求:它没有创建目标格式的字典,而是把country、visits、cities三个独立值分别追加到列表,会导致travel_log变成混合字典和单个值的混乱结构。

正确实现方式

要实现向travel_log添加新字典的需求,需要先在函数内部构造符合现有格式的字典,再将这个字典追加到列表:

travel_log = [
    {
    "country": "France",
    "visits": 12,
    "cities": ["Paris", "Lille", "Dijon"]
    },
    {
    "country": "Germany",
    "visits": 5,
    "cities": ["Berlin", "Hamburg", "Stuttgart"]
    },
]


def add_new_country(country, visits, cities):
    # 构造和现有列表元素格式一致的新字典
    new_entry = {
        "country": country,
        "visits": visits,
        "cities": cities
    }
    travel_log.append(new_entry)

add_new_country("Russia", 2, ["Moscow", "Saint Petersburg"])
print(travel_log)

效果说明

执行上述代码后,travel_log的最后一项会是{"country": "Russia", "visits": 2, "cities": ["Moscow", "Saint Petersburg"]},完全符合你期望的存储字典的列表结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 02:30:58