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

Python中如何将数据列表的值逐个添加到对象列表的对应实例中

错误原因
  • 类初始化方法内self.data=0.0缩进错误,会先触发语法报错
  • 循环赋值时误用Person.data,这是操作Person类的公共属性,不是每个实例的独立属性,赋值后所有实例自身的data还是初始值0.0,只有类属性被反复覆盖为最后一个数据
修正代码

你可以选择保留原有变量定义的写法,也可以简化列表生成逻辑,核心修正赋值逻辑即可:

data = [1,2,3,4,5,5,5,6,6,6.5]
class Person(object):
    def __init__(self,name):
        self.name = name
        self.data = 0.0 # 修正缩进错误

# 简化实例创建逻辑,不需要单独定义10个变量
list_of_people = [
    Person("Aiden"),
    Person("AidenTwo"),
    Person("AidenThree"),
    Person("AidenFour"),
    Person("AidenFive"),
    Person("AidenSix"),
    Person("AidenSeven"),
    Person("AidenEight"),
    Person("AidenNine"),
    Person("AidenTen")
]

# 正确赋值写法:用zip配对两个等长列表,逐个给实例属性赋值
for person, assign_data in zip(list_of_people, data):
    person.data = assign_data

# 如果你习惯用索引遍历的写法,也可以改成如下形式
# for idx in range(len(list_of_people)):
#     list_of_people[idx].data = data[idx]
结果验证

执行完赋值后可以用如下代码确认分配正确:

for p in list_of_people:
    print(p.name, p.data)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 04:54:04