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

如何在Python函数中排序列表元素?为何sort()输出None?

解决函数中列表排序输出None的问题

你遇到的问题根源是**list.sort()方法的特性**:它是原地修改列表的排序方法,不会返回排序后的列表,而是直接返回None。所以你直接打印even.sort()和odd.sort()时,输出的就是这个返回值。

有两种可行的解决方案:

方案一:先原地排序,再打印列表本身

先调用sort()完成原地排序,再直接打印列表变量:

def odd_even(*number):
    even = []
    odd = []
    for i in number:
        if i % 2 == 0:
            even.append(i)
        else:
            odd.append(i)
    even.sort()
    odd.sort()
    print(even)
    print(odd)

方案二:使用sorted()函数返回新排序列表

sorted()函数不会修改原列表,而是返回一个全新的排序列表,直接打印这个返回结果即可:

def odd_even(*number):
    even = []
    odd = []
    for i in number:
        if i % 2 == 0:
            even.append(i)
        else:
            odd.append(i)
    print(sorted(even))
    print(sorted(odd))

调用你的测试代码:

odd_even(1,5,7,8,4,3,26,59,48,7,5,45)

两种方案都会输出排序后的结果:

[4, 8, 26, 48]
[1, 3, 5, 5, 7, 7, 45, 59]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 05:07:10