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

如何修正Python字典值按字母排序的代码问题(禁用lambda)

如何修正Python字典值排序的代码?

我刚开始学习Python字典,现有任务要求将字典的值按字母顺序排序。我编写了如下代码:

def sort_dictionary(dic: dict) -> dict:
    for i, j in dic.items():
        sorted_dict = {i: sorted(j)}
        print(sorted_dict)

调用print(sort_dictionary({"b":["d", "a"], "a":["c", "f"]}))时,期望得到{"b":["a", "d"], "a":["c", "f"]},但当前代码输出两个单独的字典:

{'b': ['a', 'd']}
{'a': ['c', 'f']}

请问该如何修正这段代码?请尽量不要使用lambda,我还未学习该知识点。


问题分析

你的代码存在两个核心问题:

  • 每次循环都会重新创建sorted_dict变量,覆盖之前的内容,导致只能保存当前遍历到的单个键值对
  • 函数没有返回最终的完整字典,而是在循环里直接打印单个键值对,调用print(sort_dictionary(...))时还会额外输出None(因为函数默认返回None)

修正方案

我们可以先初始化一个空字典存储结果,遍历原字典时将每个排序后的键值对添加进去,最后返回这个完整的字典:

def sort_dictionary(dic: dict) -> dict:
    sorted_dict = {}  # 创建空字典用于存放最终结果
    for key, value in dic.items():
        # 对当前值列表排序后,存入结果字典
        sorted_dict[key] = sorted(value)
    return sorted_dict  # 返回完整的排序后字典

测试验证

调用print(sort_dictionary({"b":["d", "a"], "a":["c", "f"]})),会输出符合预期的结果:

{'b': ['a', 'd'], 'a': ['c', 'f']}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 02:50:50