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

如何筛选预算与收入均大于0的电影数据并生成新字典?

排查电影数据过滤代码的问题

嘿,我来帮你梳理代码里的问题,顺便给你修正后的方案!你的代码有几个关键小问题需要调整:

  • 循环对象引用错误:你写的for movie in movie_data,但在循环里却一直用movie_data['revenue']这种写法——movie_data是整个数据集(应该是列表),不能直接用字符串键访问;正确的应该是用当前迭代的movie对象,也就是movie['revenue']。
  • 条件逻辑错误:你用了or来判断,但你的需求是预算和收入都大于0的电影,所以必须换成and;另外直接判断> 0.0比!= 0.0更严谨,能避免数据里出现负数的异常情况。
  • 代码不完整:最后一行genre = movie_...没写完,假设你是要获取电影的类型字段,记得补全为movie['genre']。

修正后的完整代码

下面是调整后的代码,我把符合条件的电影用id作为键存入新字典,对应的值是包含所需字段的子字典,结构更清晰:

movies_bud_rev = {}
for movie in movie_data:
    # 确保预算和收入都严格大于0
    if movie['budget'] > 0.0 and movie['revenue'] > 0.0:
        movie_id = movie['id']
        movies_bud_rev[movie_id] = {
            'budget': movie['budget'],
            'revenue': movie['revenue'],
            'original_title': movie['original_title'],
            'release_year': movie['release_year'],
            'genre': movie['genre']
        }

可选:用列表存储过滤结果

如果你觉得列表形式更灵活(比如不需要用id做键),也可以这样写:

movies_bud_rev = []
for movie in movie_data:
    if movie['budget'] > 0.0 and movie['revenue'] > 0.0:
        filtered_movie = {
            'id': movie['id'],
            'budget': movie['budget'],
            'revenue': movie['revenue'],
            'original_title': movie['original_title'],
            'release_year': movie['release_year'],
            'genre': movie['genre']
        }
        movies_bud_rev.append(filtered_movie)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:00:02