如何在时间方面优化此python代码

如何在时间方面优化此python代码,python,json,time,Python,Json,Time,我写了这段代码,但我发现它非常慢,我不知道如何在时间上真正改进它data是一个json对象,其中包含大约70000个键。我认为最慢的部分是actors部分,因为我正在迭代一个列表(最多包含3个元素) 这对你有什么作用 from collections import defaultdict def get_stats(data): genres_number = defaultdict(int) actors_number = defaultdict(int) for

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


这对你有什么作用

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

你能告诉我们“数据”是如何构造的吗?另外,不要考虑最慢的部分是什么。在你的代码版本中,你有一个三重嵌套循环(适用于电影中的演员),但是你引用数据的方式表明,类型和演员之间没有关系。因此,通过将其转换为这种双重嵌套结构,您就不会循环太多次。
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