[英]How can I optimise in term of time this python code
I write this code but I find it very slow and I don't know how to really improve it in term of time.我写了这段代码,但我发现它很慢,我不知道如何在时间方面真正改进它。 data
is a json object with approximately 70 000 key in it. data
是一个 json 对象,其中包含大约 70 000 个键。 I think the slowest part is the actors
part because i'm iterating on a list (which contain at most 3 elements).我认为最慢的部分是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
How does this work for you这对你有什么作用
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.