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

Python调用遍历字典的自定义函数时末尾输出None的原因是什么

问题根本原因

Python 规定所有函数如果没有显式定义return返回值,执行结束后默认返回None。
你遇到的输出末尾多一行None的问题,由两个逻辑叠加导致:

  • 你定义的groups函数只有遍历打印键和序号的逻辑,全程没有写return语句,函数执行完毕后默认返回None
  • 你调用函数时使用了print(groups(参数))的写法,会先执行groups函数内部的打印逻辑(输出local、0、public、1等你预期的内容),之后会再把groups函数的返回值(也就是None)打印出来,这就是额外输出的来源。
修复方案

有两种常用的修复方式,按需选择即可:

  1. 直接去掉调用时的外层print
    函数内部已经完成了所有打印逻辑,不需要额外打印函数的返回值,直接调用即可:
groups({"local": ["admin", "userA"], "public":  ["admin", "userB"], "administrator": ["admin"]})
  1. 给函数加显式的return语句
    如果后续需要用到函数遍历后的结果,可以显式返回你需要的内容,此时打印返回值就不会出现默认的None:
def groups(group_dictionary):
    i = 0
    result = []
    for group in group_dictionary:
        print(group)
        print(i)
        result.append((i, group))
        i = i+1
    return result

print(groups({"local": ["admin", "userA"], "public":  ["admin", "userB"], "administrator": ["admin"]}))

内容的提问来源于stack exchange,提问作者Salah.Louizy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 15:39:03