我编写了这段代码,但我发现它非常慢,而且我不知道如何在时间上真正改进它。 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/