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

Python中能否用切片给复杂对象列表的元素字段批量赋值?

错误原因说明
  • C[:]是列表的切片操作,返回的是一个和原列表内容相同的新列表对象,列表本身没有定义x属性,所以直接访问C[:].x会抛出属性不存在的错误,你无法通过这种方式直接批量访问列表内所有元素的属性。
  • 你写的m[:][0]也不符合取值预期:m[:]返回m的全量拷贝,再取[0]只会得到m的第一个子数组[0, 0],而非所有子数组的索引0位的值。
批量赋值的实现方案

你可以通过配对遍历两个序列的对应元素完成赋值,最简洁的写法如下:

for po_item, m_item in zip(C, m):
    po_item.x = m_item[0]

如果习惯通过索引操作,也可以写为:

for idx in range(len(C)):
    C[idx].x = m[idx][0]

两种写法效果完全一致,前者不需要手动处理索引,更符合Python的编码习惯。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 15:45:04