千家信息网

怎么加速Python列表和字典

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,本篇内容主要讲解"怎么加速Python列表和字典",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么加速Python列表和字典"吧!我们先编写一个装饰器函数
千家信息网最后更新 2025年01月19日怎么加速Python列表和字典

本篇内容主要讲解"怎么加速Python列表和字典",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么加速Python列表和字典"吧!

我们先编写一个装饰器函数来计算函数的执行时间,方便测验不同代码的速度:

import functools import time  def timeit(func):     @functools.wraps(func)     def newfunc(*args, **kwargs):         startTime = time.time()         func(*args, **kwargs)         elapsedTime = time.time() - startTime         print('function - {}, took {} ms to complete'.format(func.__name__, int(elapsedTime * 1000)))     return newfunc

一、避免在列表中重新评估

1. 在循环内

代码:

@timeit def append_inside_loop(limit):     nums = []     for num in limit:         nums.append(num)  append_inside_loop(list(range(1, 9999999)))

在上面的函数中.append每次通过循环重新计算的函数引用。执行后,上述函数所花费的总时间:

o/p - function - append_inside_loop, took 529 ms to complete

2. 在循环外

代码:

@timeit def append_outside_loop(limit):     nums = []     append = nums.append     for num in limit:         append(num)  append_outside_loop(list(range(1, 9999999)))

在上面的函数中,我们对nums.append在循环外部估值,并在循环内部使用append为变量。总时间:

o/p - function - append_outside_loop, took 328 ms to complete

如您所见,当我们在for循环外部追加为一个本地变量,这将花费更少的时间,可以将代码加速201 ms。

二、避免在字典中重新求值

1. 在循环内部

代码:

@timeit def inside_evaluation(limit):     data = {}     for num in limit:         data[num] = data.get(num, 0) + 1  inside_evaluation(list(range(1, 9999999)))

上述函数所花费的总时间:

o/p - function - inside_evaluation, took 1400 ms to complete

2. 在循环外

代码:

@timeit def outside_evaluation(limit):     data = {}     get = data.get     for num in limit:         data[num] = get(num, 0) + 1   outside_evaluation(list(range(1, 9999999)))

上述函数所花费的总时间:

o/p - function - outside_evaluation, took 1189 ms to complete

如你所见,我们这里的代码速度提高了211毫秒。

到此,相信大家对"怎么加速Python列表和字典"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

函数 循环 时间 代码 字典 内容 变量 外代 速度 面的 学习 不同 实用 更深 估值 兴趣 实用性 实际 操作简单 方法 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 原神亚洲服务器兑换码 软件编程与软件开发的联系 usg防火墙代理服务器 小米官网退不出来提示服务器出错 删了数据库怎么找 我的世界服务器需要登录吗 重庆企业网络技术流程内容 进一步明确网络安全的重要性 软件开发管理的痛点 郑州高新区网络安全宣传周开幕式 招投标网络安全定级指南 学软件开发专业哪个学校好 北仑软件开发项目管理 图像软件开发工程师 服务器机房安全标语 华为网络技术教材下载 合肥app软件开发的费用 石家庄专业服务器散热器订制 漫漫app显示服务器连接失败 软件开发企业发展的建议 网络安全会议培训 安阳网络技术培训就业 南昌服务器出租 警校信息网络安全监察是网警吗 数据库中表信息的统计 如何申请软件开发免税 东莞 河南数据库系统工程师试题 数据库中视图和索引的解释 软件开发在中国前景 网络技术导论考试
0