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

使用for循环为DataFrame填充列表列时所有行均显示最终列表的问题

问题原因

这是Python可变对象的引用机制导致的:
列表属于可变对象,你每次向rows中追加list_employe时,存入的并不是当前列表的内容副本,而是这个列表对象的内存引用。整个循环过程中你始终在修改同一个list_employe对象的内容,之前存入rows的所有引用都会同步跟随变化,最终生成DataFrame时,所有行的列表列就都会显示该对象最后一次修改后的状态。

修复方案

只需要在向rows追加数据时,存入list_employe的浅拷贝即可,修改对应行代码:

# 原代码
# rows.append([day, total_emp, new_emp, end_emp, list_employe])
# 修改为以下任意一种写法均可
rows.append([day, total_emp, new_emp, end_emp, list_employe.copy()])
# 也可以用切片写法:rows.append([day, total_emp, new_emp, end_emp, list_employe[:]])
# 也可以用类型转换:rows.append([day, total_emp, new_emp, end_emp, list(list_employe)])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 21:06:04