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

如何在Python列表推导式中为列表内的对象属性赋值?

问题解决:给对象列表批量赋值price属性

你遇到的问题根源在于:Python列表推导式要求内部是表达式,而x.price = y是赋值语句,不属于表达式范畴,因此无法直接在推导式中使用。

下面是两种可行的解决方式:

  • 普通for循环(推荐,可读性高)
    这是最直接且易维护的写法:

    for x, y in zip(item_list, new_price):
        x.price = y
    
  • 利用setattr的表达式特性实现(不推荐,可读性差)
    如果一定要用类似推导式的写法,可以借助setattr函数(它是表达式,会返回None),通过生成器表达式触发执行:

    list(setattr(x, 'price', y) for x, y in zip(item_list, new_price))
    

    注意:这种写法只是满足“类似推导式”的形式,实际可读性远不如普通循环,不建议在生产代码中使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 21:57:09