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

Python列表推导式调用append报can't assign to function call错误如何解决

错误产生原因
  • 列表推导式语法不符合Python规范:for关键字后必须遵循变量 in 可迭代对象的结构,你写的x1.append(int(np.median(i))) in list属于语法错误,Python会将x1.append(...)识别为赋值目标,而函数调用本身不支持被赋值,因此直接抛出can't assign to function call错误。
  • 代码还存在两个隐藏问题:
    • 直接使用Python内置类型名list作为自定义变量名,会覆盖内置list的原有功能,属于不规范命名。
    • 代码用到了numpy库的np.median方法,但缺少对应的导入语句,未提前导入numpy的情况下运行会触发名称错误。
代码修改方案

方案1:用列表推导式实现(推荐)

列表推导式本身会自动生成新列表,不需要手动调用append方法,正确写法如下:

import numpy as np

range_list = [range(130,135),range(135,140),range(140,145),range(145,150),range(150,155),range(155,160),range(160,165)]
x1 = [int(np.median(i)) for i in range_list]

方案2:用普通for循环+append实现

如果习惯用append方法追加元素,使用普通for循环即可:

import numpy as np

range_list = [range(130,135),range(135,140),range(140,145),range(145,150),range(150,155),range(155,160),range(160,165)]
x1 = []
for i in range_list:
    x1.append(int(np.median(i)))

两种方案运行后得到的x1结果为[132, 137, 142, 147, 152, 157, 162],符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 01:06:03