网站首页 > 技术文章 正文
Python性能优化:从循环到列表推导式。
先来运行一下这个代码,这个代码分两部分,上边一部分,下边一部分。
·右键单击空白处,点击运行Python,点击在终端中运行Python文件,等几秒钟结果出来了。这个是上边这些代码运行的结果,这个是下边这些在完成的结果。
·上面是使用手动遍历移除所有匹配元素,所用时间3.187秒。使用列表推导式移除所有匹配元素,所用时间1.634秒。上边这段代码用的时间是下边这段代码用的时间两倍。
·再看一下代码,先看上面这些代码。
→第一步import time,先把time包导入进来,导入time包的目的是要计时刚才两个时间,就用time包里边的方法计算。
→第二步生成大量数据。首先先定义了一个数组,有5个元素,然后乘以这是1000万,也就是有5000万个元素,这一个列表里面另一个变量target是大写的"A'。
→然后记录一下起始时间,用time包的time函数记录起始时间。
→后面定义了一个新的列表,然后对旧的列表list1进行循环,取出每一个元素都赋给item。
→判断一下如果item不等于target,也就是如果列表循环当中取出的元素不等于大写的'A',new_list.append(item)就把元素追加到new_list新列表里边去,也就是对这5000万个元素进行循环,把不是大写'A'的元素全都追加到new_list新列表里边去。
→等循环执行完了,new_list里边就是所有的不是大写"A'的元素,记录一下结束时间。
→最后再计算一下程序运行时间。
下边这个代码跟上边那个代码基本差不多,这个列表也是5000万个元素,连元素的值都是一样的,target也是大写的"A',也是记录起始时间。关键是这儿不一样,上面通过一个循环遍历列表里的每一个元素,判断一下这个元素是不是等于target,如果不等于追加到列表里去。
下边只用了一句话,叫列表推导式。新定义了一个list,两个方括号代表它是一个列表,列表里的元素是什么?是x,这个x是forxin list1,这个x是list1里的每一个元素。
forxin list1就是一个循环,它会对list1里的每一个元素进行循环,取出来之后赋给x,if x!=target。也就是说如果列表里边当前循环的元素不等于大写'A',它就会把这个元素放到新列表里边来,后边就记录一下这段代码用了多长时间。
最后的结果就是大家刚才看到的两种方法用的时间的差别非常大,上面这种方法用了3.8秒,下边这种方法用了不到上边这种方法时间的一半。也就是说当对大数据量的数据进行循环操作的时候,使用列表推导式要远远快于这种循环的方式。
最后感谢大家观看,下一个视频再见。
猜你喜欢
- 2025-03-20 python入门-day23:初识机器学习(python 机器学习)
- 2025-03-20 [今日推荐:pyTermTk] 轻松打造酷炫终端界面的利器
- 2025-03-20 在python终端中打印颜色的3中方式(python3经典编程案例)
- 2025-03-20 超算互联网DeepSeek-R1 API接口服务开启,免费100万Tokens
- 2025-03-20 python入门-Day 17: NumPy 基础(python3.10 numpy)
- 2025-03-20 OpenAI Python SDK 使用指南(open python3)
- 2025-03-20 Github高星终端高亮和色彩渲染库——Rich
- 2025-03-20 python远程管理编程中如何处理Fn(功能)键
- 2025-03-20 不花一分钱:用DeepSeek学Python,保姆级教程
- 2025-03-20 零基础也能轻松上手!Python Flask快速构建你的第一个Web应用
- 261℃Python短文,Python中的嵌套条件语句(六)
- 261℃python笔记:for循环嵌套。end=""的作用,图形打印
- 260℃PythonNet:实现Python与.Net代码相互调用!
- 255℃Python实现字符串小写转大写并写入文件
- 254℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 110℃原来2025是完美的平方年,一起探索六种平方的算吧
- 94℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 87℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)