当键值大于0时创建字典列表

2024-09-30 14:31:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个电影数据字典,我想创建一个新的字典,其中的电影子集的预算和收入键的值都大于0.0。你知道吗

这是我的密码,有人能帮忙吗?你知道吗

movies_bud_rev = {}
for movie in movie_data:
    if (movie_data['revenue'] != 0.0 or movie_data['budget'] != 0.0):
        id = movie_data['id']
        budget = movie_data['budget']   
        revenue = movie_data['revenue']
        original_title = movie_data['original_title']
        release_year = movie_data['release_year']
        genre = movie_data['genre']
        popularity = movie_data['popularity']
        vote_average = movie_data['vote_average']
        vote_count = movie_data['vote_count']

len (movies_bud_rev)

我收到的错误:

TypeError: list indices must be integers, not str

我的字典 enter image description here

我在创建新词典方面的尝试 enter image description here


Tags: iddatarelease字典电影titlerevmovies
2条回答

从您提供的图像来看,movie_data是一个list of dictionaries。你知道吗

因此,您需要将过滤为列表。你可以通过列表理解来实现这一点。你知道吗

res = [m for m in movie_data if (m['revenue'] > 0 and m['budget'] > 0)]

注意一些问题:

  • 结果还将是一个字典列表。你知道吗
  • 收入和预算大于零的逻辑需要使用and,而不是or。你知道吗

根据您发布的图片,movie_data是包含字典的列表 你在movie_data中使用了索引,这就是为什么你在movie中得到了错误,这是dictionary对象

movies_bud_rev = {}
for movie in movie_data:
    if (movie['revenue'] != 0.0 or movie['budget'] != 0.0):
        id = movie['id']
        budget = movie['budget']   
        revenue = movie['revenue']
        original_title = movie['original_title']
        release_year = movie['release_year']
        genre = movie['genre']
        popularity = movie['popularity']
        vote_average = movie['vote_average']
        vote_count = movie['vote_count']

相关问题 更多 >