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

为何is_greater函数判定the_greater_list为None而非list类型?如何解决?

问题分析与解决方案

你的代码里有两个关键错误导致the_greater_list被判定为None:

  1. 列表初始化语法错误
    你用list(the_greater_list = [])创建列表是完全错误的写法,正确的列表初始化应该直接赋值:

    the_greater_list = []
    
  2. append方法的使用误区
    list.append()是原地修改列表的方法,它的返回值是None。你写的the_greater_list = the_greater_list.append(number)会把None赋值给变量,第一次执行后the_greater_list就变成了None,后续操作自然失效。正确的写法是直接调用append,不需要赋值:

    the_greater_list.append(number)
    

修正后的完整代码:

def is_greater(my_list, n):
    """筛选列表中大于等于n的元素
    :param my_list: 待筛选的列表
    :param n: 筛选阈值
    :type my_list: list
    :type n: int
    :return: 筛选后的列表
    :rtype: list
    """
    the_greater_list = []
    for number in my_list:
        if number >= n:
            the_greater_list.append(number)
    return the_greater_list

list1 = [1, 30, 25, 60, 27, 28]
N = 28
print(is_greater(list1, N))  # 输出: [30, 60, 28]

另外,Python里可以用列表推导式让代码更简洁高效,等价写法:

def is_greater(my_list, n):
    """筛选列表中大于等于n的元素
    :param my_list: 待筛选的列表
    :param n: 筛选阈值
    :type my_list: list
    :type n: int
    :return: 筛选后的列表
    :rtype: list
    """
    return [number for number in my_list if number >= n]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 14:30:52