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

Python遍历TMDB数据集追加字典项时数据被覆盖问题求解

问题根因

代码存在两处逻辑错误,直接导致结果仅保留最后一条匹配记录:

  • 匹配到符合条件的影片时,执行final_list = [movie_dict]会直接将结果列表重新赋值为仅含当前影片字典的新列表,之前存入的所有匹配记录会被全量覆盖,而非追加新内容。
  • 未在循环内部初始化影片字典,全程在修改循环外定义的同一个movie_dict可变对象。Python中字典为引用类型,即便后续修改为追加操作,列表内存储的所有字典引用都会指向同一个内存地址,最终所有条目都会被最后一次循环的赋值覆盖。

你在if分支内加print能正常打印所有符合条件的影片,是因为print执行时movie_dict刚好被赋值为当前循环的影片信息,还未被下一轮循环的内容修改,因此控制台输出符合预期,但最终结果集会受上述两个问题影响丢失前面的记录。

修复后代码
final_list = []
for i in range(1,1000):
    if genre_name in data[str(i)]['genres']:
        # 每匹配到一部影片,新建独立字典存储单条影片信息
        movie_dict = {}
        movie_dict["Title"] = data[str(i)]['title']
        movie_dict["Language"] = data[str(i)]['original_language']
        # 将当前影片字典追加到结果列表,不要重新赋值整个列表
        final_list.append(movie_dict)
return final_list

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 13:54:22