当前位置:主页 > python教程 > Python如何初始化列表

Python初始化列表的方法 如何初始化列表

发布:2019-06-28 22:14:31 217


为找教程的网友们整理了相关的编程文章,网友怀睿达根据主题投稿了本篇教程内容,涉及到Python、初始化列表、Python如何初始化列表相关内容,已被818网友关注,如果对知识点想更进一步了解可以在下方电子资料中获取。

Python如何初始化列表

Python是一种非常灵活的语言,可以通过多种方式执行单个任务,例如,可以通过多种方式执行初始化列表。下面本篇文章就来带大家了解几种Python初始化的方法,并比较一下这几种方法的效率,希望对大家有所帮助。

 

Python如何初始化列表?

下面我们就来介绍在Python中初始化列表(我们创建大小为1000并使用零初始化的列表)的一些方法。

方法一:使用for循环和append()

我们可以创建一个空的列表,并使用append()方法通过for循环n次来将元素添加到列表中。

arr = []
for i in range(1000):
    arr.append(0)

方法二:使用带计数器变量的while循环和append()

这和方法一有点类似,但是我们使用while循环代替for循环。

arr = []
i = 0
while(i<1000):
    arr.append(0)

方法三:使用列表推导(List Comprehension)

列表推导(List Comprehension) 是一种数学家用来实现众所周知标记集合的Python方式。它由方括号组成,包含一个表达式,后跟一个for子句,后面跟一个可选的if子句。

表达式可以是我们想要放入列表中的任何类型的对象;由于我们用零初始化列表,因此我们的表达式将只为0。

arr = [0 for i in range(1000)]

说明:用列表推导可以编写高效率的代码,它的执行速度比for循环快35%。

方法四:使用*运算符

运算符可以用作[object] * n,其中n是数组中元素的数目。

arr = [0]*1000

代码执行时间比较

下面我们来看看这四种方法的执行时间,看看那种方法更快。

示例:我们将计算每种方法在500次上初始化10000个元素的数组所花费的平均时间。

# 导入时间模块以计算时间
import time 
  
# 初始化列表以保存时间
forLoopTime = [] 
whileLoopTime = [] 
listComprehensionTime = [] 
starOperatorTime = [] 
  
# 重复此过程500次,并计算所用的平均时间。
for k in range(500):  
  
    # 开始时间
    start = time.time() 
    # 声明空列表
    a = [] 
    # 执行for循环10000次
    for i in range(10000): 
        a.append(0) 
    # 停止时间
    stop = time.time() 
    forLoopTime.append(stop-start) 
  
    # 开始时间
    start = time.time() 
    # 声明空列表
    a = [] 
    i = 0
    # 执行while循环10000次
    while(i<10000): 
        a.append(0) 
        i+= 1
    stop = time.time() 
    whileLoopTime.append(stop-start) 
  
    start = time.time() 
    # 使用列表推导(List Comprehension) 来初始化列表
    a = [0 for i in range(10000)]  
    stop = time.time() 
    listComprehensionTime.append(stop-start) 
  
  
    start = time.time() 
    # 使用*运算符
    a = [0]*10000 
    stop = time.time() 
    starOperatorTime.append(stop-start) 
  
  
  
print("for循环所用的平均时间:" + str(sum(forLoopTime)/100)) 
print("while循环所用的平均时间:" + str(sum(whileLoopTime)/100)) 
print("列表推导所用的平均时间:" + str(sum(listComprehensionTime)/100)) 
print("* 运算符所用的平均时间: " + str(sum(starOperatorTime)/100))

输出:

Python如何初始化列表?

注意:时间将根据执行此代码的平台而有所不同。这些时间仅用于研究这些初始化方法的相对性能。

● 可以看出,for和while循环所用时间几乎相同。

● 列表推导的性能比for和while循环要好得多,前者的速度要快3-5倍。当我们尝试创建1-1000的数字列表时,可以看到另一个这种差异的例子。使用列表推导比使用append()要好得多。

a = [i for i in range(1,1001)]

● 使用*运算符比其余方法更快,这是您应该初始化列表的方式

相关视频教程推荐:《Python教程》

以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注码农之家相关教程栏目!!!


参考资料

相关文章

  • Python中对数据库的操作详解

    发布:2023-04-02

    今天简单说说MySQL,我们存储数据,直接用本地文件即可,但是,本地文件不利于存放海量数据,也不利于用程序对文件的数据进行查询与管理,我们可以使用数据库


  • 一文教你实现Python重试装饰器

    发布:2023-04-12

    在写业务代码时候,有许多场景需要重试某块业务逻辑,例如网络请求、购物下单等,希望发生异常的时候多重试几次。本文分享如何利用Python 的装饰器来进行面向切面(AOP)的方式实现自动重试器,希望对大家有所帮助


  • 使用Python的OpenCV模块识别滑动验证码的缺口(推荐)

    使用Python的OpenCV模块识别滑动验证码的缺口(推荐)

    发布:2022-06-18

    给大家整理了关于Python的教程,这篇文章主要介绍了使用Python的OpenCV模块识别滑动验证码的缺口,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下


  • Python list和str互转的实现示例

    发布:2022-06-14

    给大家整理了关于Python的教程,这篇文章主要介绍了Python list和str互转的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


  • Python 使用 pip 安装 matplotlib 模块的方法

    发布:2023-04-01

    matplotlib是python中强大的画图模块,这篇文章主要介绍了Python 使用 pip 安装 matplotlib 模块(秒解版),本文给大家介绍的非常详细,需要的朋友可以参考下


  • Python中命令行参数argparse模块的使用

    发布:2023-04-23

    argparse是python自带的命令行参数解析包,可以用来方便的服务命令行参数。本文将通过示例和大家详细讲讲argparse的使用,需要的可以参考一下


  • 解读python中的类型提示(type hint)

    发布:2023-04-24

    这篇文章主要介绍了解读python中的类型提示(type hint),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


  • python中如何实现径向基核函数

    发布:2023-04-03

    这篇文章主要介绍了python中如何实现径向基核函数问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


网友讨论