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

如何向Python字典添加键值对且避免打印输出None?

问题原因

你定义的add_contact函数没有显式设置返回值,Python中所有未写return语句的函数,默认都会返回None,你直接对函数调用结果执行print操作,自然会输出None。
另外字典属于可变对象,你在函数内修改传入的contacts字典时,会直接修改原字典对象,所以后续单独打印原字典可以看到新增的键值对。

解决方案

方案1:调用函数后单独打印字典

不需要打印函数的返回结果,先执行新增联系人逻辑,再单独打印更新后的字典即可,这也是最符合常规写法的方案:

contacts = {'John Smith': '1-123-123-123',
            'Jane Smith': '1-102-555-5678',
            'John Doe': '1-103-555-9012'}

def add_contact(contacts, name, number):
    """
    Add a new contact (name, number) to the contacts list.
    """
    if name in contacts:
        print(name, "is already in contacts list!")
    else:
        contacts[name] = number

# 直接调用函数执行新增逻辑,不要套print
add_contact(contacts, 'new_guy', '1234')
# 单独打印更新后的字典
print(contacts)

方案2:给函数添加返回值

如果你希望调用函数后直接拿到更新后的字典,可以在函数末尾添加return语句返回更新后的联系人字典:

contacts = {'John Smith': '1-123-123-123',
            'Jane Smith': '1-102-555-5678',
            'John Doe': '1-103-555-9012'}

def add_contact(contacts, name, number):
    """
    Add a new contact (name, number) to the contacts list.
    """
    if name in contacts:
        print(name, "is already in contacts list!")
    else:
        contacts[name] = number
    # 新增返回语句,返回更新后的字典
    return contacts

# 此时打印函数返回值就会输出更新后的字典,不会出现None
print(add_contact(contacts, 'new_guy', '1234'))

常规场景更推荐使用方案1,修改可变入参的函数默认不需要返回修改后的对象,代码可读性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 13:18:05