广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中快的循环方式有哪些
  • 666
分享到

Python中快的循环方式有哪些

2023-07-06 02:07:00 666人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍“python中快的循环方式有哪些”,在日常操作中,相信很多人在Python中快的循环方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中快的循环方式有哪些”的疑惑有所帮助!

这篇文章主要介绍“python中快的循环方式有哪些”,在日常操作中,相信很多人在Python中快的循环方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中快的循环方式有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

各种姿势

比如说有一个简单的任务,就是从 1 累加到 1 亿,我们至少可以有 7 种方法来实现,列举如下:

1、while 循环
def while_loop(n=100_000_000):i = 0s = 0while i < n:s += ii += 1return s
2、for 循环
def for_loop(n=100_000_000):s = 0for i in range(n):s += ireturn s
3、sum range
def sum_range(n=100_000_000):return sum(range(n))
4、sum generator(生成器)
def sum_generator(n=100_000_000):return sum(i for i in range(n))
5、sum list comprehension(列表推导式)
def sum_list_comp(n=100_000_000):return sum([i for i in range(n)])
6、sum numpy
import numpydef sum_numpy(n=100_000_000):return numpy.sum(numpy.arange(n, dtype=numpy.int64))
7、sum numpy python range
import numpydef sum_numpy_python_range(n=100_000_000):return numpy.sum(range(n))

上述 7 种方法得到的结果是一样的,但是消耗的时间却各不相同,你可以猜测一下哪一个方法最快,然后看下面代码的执行结果:

import timeitdef main():l_align = 25print(f'{"1、while 循环":<{l_align}} {timeit.timeit(while_loop, number=1):.6f}')print(f"{'2、for 循环':<{l_align}}{timeit.timeit(for_loop, number=1):.6f}")print(f'{"3、sum range":<{l_align}} {timeit.timeit(sum_range, number=1):.6f}')print(f'{"4、sum generator":<{l_align}} {timeit.timeit(sum_generator, number=1):.6f}')print(f'{"5、sum list comprehension":<{l_align}} {timeit.timeit(sum_list_comp, number=1):.6f}')print(f'{"6、sum numpy":<{l_align}} {timeit.timeit(sum_numpy, number=1):.6f}')print(f'{"7、sum numpy python range":<{l_align}} {timeit.timeit(sum_numpy_python_range, number=1):.6f}')if __name__ == '__main__':main()

执行结果如下所示:

Python中快的循环方式有哪些

比较快的方式

for 比 while 块

for 和 while 本质上在做相同的事情,但是 while 是纯 Python 代码,而 for 是调用了 C 扩展来对变量进行递增和边界检查,我们知道 CPython 解释器就是 C 语言编写的,Python 代码要比 C 代码慢,而 for 循环代表 C,while 循环代表 Python,因此 for 比 while 快。

numpy 内置的 sum 要比 Python 的 sum 快

numpy 主要是用 C 编写的,相同的功能,肯定是 numpy 的快,类似的,numpy 的 arange 肯定比 Python 的 range 快。

交叉使用会更慢

numpy 的 sum 与 Python 的 range 结合使用,结果耗时最长,见方法 7。最好是都使用 numpy 包来完成任务,像方法 6。

生成器比列表推导式更快

生成器是惰性的,不会一下子生成 1 亿个数字,而列表推导式会一下子申请全部的数字,内存占有较高不说,还不能有效地利用缓存,因此性能稍差。

到此,关于“Python中快的循环方式有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: Python中快的循环方式有哪些

本文链接: https://www.lsjlt.com/news/357382.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python中快的循环方式有哪些
    这篇文章主要介绍“Python中快的循环方式有哪些”,在日常操作中,相信很多人在Python中快的循环方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中快的循环方式有哪些”的疑惑有所帮助!...
    99+
    2023-07-06
  • 哪种Python循环方式最快?
    众所周知,Python 不是一种执行效率较高的语言。此外在任何语言中,循环都是一种非常消耗时间的操作。假如任意一种简单的单步操作耗费的时间为 1 个单位,将此操作重复执行上万次,最终耗费的时间也将增长上万倍。while 和 for 是 Py...
    99+
    2023-05-14
    Python 语言 循环方式
  • java中for循环的方式有哪些
    Java中for循环的方式有以下几种:1. 基本for循环:在已知循环次数的情况下使用,适用于遍历数组或集合等固定大小的数据结构。`...
    99+
    2023-10-07
    java
  • php中循环数组的方式有哪些
    这篇文章主要介绍“php中循环数组的方式有哪些”,在日常操作中,相信很多人在php中循环数组的方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php中循环数组的方式有哪些”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-21
  • Thymeleaf的循环遍历方式有哪些
    这篇文章主要介绍“Thymeleaf的循环遍历方式有哪些”,在日常操作中,相信很多人在Thymeleaf的循环遍历方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Thymeleaf的循环遍历方式有哪些...
    99+
    2023-07-02
  • Python 中快的循环方式,你知道几种?
    大家好,我是 somenzz,今天我们来研究一下 Python 中最快的循环方式。各种姿势比如说有一个简单的任务,就是从 1 累加到 1 亿,我们至少可以有 7 种方法来实现,列举如下:1、while 循环def while_loop(n=...
    99+
    2023-05-14
    Python 生成器 循环方式
  • Freemarker中的循环模式有哪些
    本篇内容介绍了“Freemarker中的循环模式有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Freemarker 3种循环模式1. ...
    99+
    2023-07-05
  • shell中有哪些循环格式
    shell中有哪些循环格式?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.while 的格式x=1while ((x<=10)) ;...
    99+
    2023-06-09
  • golang循环遍历map的方式有哪些
    本篇内容介绍了“golang循环遍历map的方式有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!golang循环遍历map的方式有1种,...
    99+
    2023-07-05
  • Python中的循环类型有哪些
    本篇内容介绍了“Python中的循环类型有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 什么是循环在编程中,循环意味着以相同...
    99+
    2023-06-15
  • Python中的循环语句有哪些
    今天就跟大家聊聊有关Python中的循环语句有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1 for循环是for循环,可以把集合数据类型list、tuple、dict、set的...
    99+
    2023-06-14
  • JS中循环遍历数组方式有哪些
    这篇文章主要讲解了“JS中循环遍历数组方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JS中循环遍历数组方式有哪些”吧!本文比较并总结遍历数组的四种...
    99+
    2022-10-19
  • Python使用for实现无限循环的方式有哪些
    这篇文章主要介绍“Python使用for实现无限循环的方式有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python使用for实现无限循环的方式有哪些”文章能帮助大家解决问题。Python使用...
    99+
    2023-07-05
  • JS中有哪些循环方法
    这篇文章主要为大家展示了“JS中有哪些循环方法”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JS中有哪些循环方法”这篇文章吧。一、for循环  四部曲:  1、...
    99+
    2022-10-19
  • python中实现循环遍历的方法有哪些
    本篇文章为大家展示了python中实现循环遍历的方法有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,Pytho...
    99+
    2023-06-14
  • Spring解决循环依赖的方式有哪些
    小编给大家分享一下Spring解决循环依赖的方式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!循环依赖就是N个类中循环嵌套引用,如果在日常开发中我们用new...
    99+
    2023-06-16
  • 编写Vue v-for循环的方式有哪些
    这篇文章主要讲解了“编写Vue v-for循环的方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“编写Vue v-for循环的方式有哪些”吧!这在碰到诸如以下情况时...
    99+
    2023-06-22
  • python中while循环的要素有哪些
    本篇文章给大家分享的是有关python中while循环的要素有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。python有哪些常用库python常用的库:1.requesu...
    99+
    2023-06-14
  • JavaScript循环的方法有哪些
    本篇内容主要讲解“JavaScript循环的方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript循环的方法有哪些”吧! ...
    99+
    2022-10-19
  • python有哪些循环函数
    python中的循环函数有以下两种for循环sum = 0for x in range(5):sum = sum + xprint(sum)while循环sum = 0n = 1while n < 5:sum = sum + nn = n+...
    99+
    2022-10-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作