python - 我怎样才能优化这个Python代码的时间

标签 python json time

我编写了这段代码,但我发现它非常慢,而且我不知道如何在时间上真正改进它。 data 是一个 json 对象,其中包含大约 70 000 个键。我认为最慢的部分是 actors 部分,因为我正在迭代一个列表(最多包含 3 个元素)。

genres_number = {}
actors_number = {}    
for movie in data:
    for genre in data[movie]["genres"]:
        if data[movie]["actors"] != None:
            for actor in data[movie]["actors"]:
                if actor not in actors_number.keys():
                    actors_number[actor] = 1
                else:
                    actors_number[actor] = actors_number[actor] + 1
        if genre not in genres_number.keys():
            genres_number[genre] = 1
        else:
            genres_number[genre] = genres_number[genre] + 1
res = []
res.append(genres_number)
res.append(actors_number)
return res

最佳答案

这对您有何帮助

from collections import defaultdict

def get_stats(data):
    genres_number = defaultdict(int)
    actors_number = defaultdict(int)

    for movie in data:

        actors = movie.get('actors')
        if actors:
            for actor in actors:
                actors_number[actor] += 1

        genres = movie.get('genres')
        for genre in genres:
            genres_number[actor] += 1

    res = []
    res.append(dict(genres_number))
    res.append(dict(actors_number))
    return res

关于python - 我怎样才能优化这个Python代码的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36341515/

相关文章:

python - 在 Qt C++ 应用程序中创建 python 解释器小部件的简单方法?

python - python中的标准输出编码

python mailchimp api 2.0 json响应错误

date - 如何解析以下格式的日期/时间?

c - 你如何在C中的Epoch中获取文件的最后访问时间?

python - 在没有 X11 的情况下使用 Python Gtk3 绑定(bind)

python - 将新键重置为字典

php - 在 PHP 中检查字符串是否为 JSON 的最快方法?

arrays - MongoDB重命名数组中的数据库字段

c - 在 C 中将时间戳存储为二进制分数