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

如何实现筛选列表中大于5的数字的Python函数?

问题修正与解决

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

  • 错误遍历了外层列表的索引而非子列表本身,还错误判断索引是否大于5,完全偏离了过滤子列表元素的需求
  • 没有对每个子列表内部的元素进行遍历和筛选,无法得到每个子列表的过滤结果

另外你提到append返回None的问题:append是原地修改列表的方法,它的返回值就是None,所以只需直接调用列表.append(元素)即可,不要把它的返回值赋值给变量。

修正后的嵌套循环实现

lst = [[0, 1, 5, 6, 9], [5, 5, 5, 5], [42, 1337], [-100, 100]]

def more_than_five(lst):
    result = []
    # 遍历外层列表的每个子列表
    for sublist in lst:
        filtered_sublist = []
        # 遍历当前子列表的每个数字
        for num in sublist:
            # 筛选大于5的数字
            if num > 5:
                filtered_sublist.append(num)
        # 将筛选后的子列表加入结果列表
        result.append(filtered_sublist)
    return result

# 调用函数并逐个输出子列表
filtered_result = more_than_five(lst)
for sub in filtered_result:
    print(sub)

更简洁的列表推导式实现

Python的列表推导式可以用一行完成嵌套筛选,代码更简洁:

lst = [[0, 1, 5, 6, 9], [5, 5, 5, 5], [42, 1337], [-100, 100]]

def more_than_five(lst):
    return [[num for num in sublist if num > 5] for sublist in lst]

filtered_result = more_than_five(lst)
for sub in filtered_result:
    print(sub)

运行结果

执行后会输出:

[6, 9]
[]
[42, 1337]
[100]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 22:45:28