你能不能给我一些建议,如何加速Python中的事情
我当前的问题 - 代码有效 - 但是吃了所有内存 - 因为我有2个包含for循环(
所以 - 我有两个dicts列表,需要根据下面的逻辑过滤它。
count = 0
size = 0
latest = dateutil.parser.parse('1900-01-01T00:00:00.000')
for obj_seg in objects_segments[1]:
exclude = False
for obj in objects[1]:
if obj['name'] in obj_seg['name']:
exclude = True
break
if not exclude:
d = dateutil.parser.parse(obj_seg['last_modified'])
if d > latest:
latest = d
size+=obj_seg['bytes']
count+=1
" objects_segments [1]"最多可包含30M元素和"对象[1]" - 高达100K ......
使用此类数据进行操作的更好方法包括for_loop(
UPD1:更改布尔逻辑并将中断添加到第二个周期。 Tnx @nthall
答案 0 :(得分:1)
嗯,一个简单的改进就是在设置exclude = False
后停止内循环 - 现在你将不必要地继续循环。
for obj in objects[1]:
if obj['name'] not in obj_seg['name']:
exclude = False
break