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

Python列表打印异常:代码返回None,缺失哪一步?

问题分析与解决

嘿,这个问题很常见——你踩了Python列表排序方法的一个小坑!

问题根源

你在sort_list函数里用了unsorted_list.sort(),但**list.sort()是一个原地排序方法**:它会直接修改原列表的顺序,但本身不会返回任何有效内容(准确说返回的是None)。所以你把这个返回值赋值给sorted_list,最后返回的自然就是None,这就导致main函数里的my_list变成了None,打印出来就是你看到的结果。

两种修复方案

你可以根据需求选其中一种:

方案1:使用sorted()函数(推荐,不修改原列表)

sorted()函数会创建并返回一个新的排序列表,原列表保持不变,非常适合你的场景:

def sort_list(unsorted_list):
    sorted_list = sorted(unsorted_list)
    return sorted_list

方案2:修正sort()的使用方式(原地排序后返回原列表)

如果你不介意修改传入的原列表,也可以直接排序后返回原列表(因为sort()已经修改了它):

def sort_list(unsorted_list):
    unsorted_list.sort()
    return unsorted_list

要是你想保留原列表的顺序,还可以先复制一份再排序:

def sort_list(unsorted_list):
    sorted_list = unsorted_list.copy()  # 创建原列表的副本
    sorted_list.sort()
    return sorted_list

验证修复效果

修改后再运行代码,当你输入完数值并输入done后,就会正常打印出排序后的列表啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 11:52:43