Python初始化列表

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

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

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

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

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

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

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

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

arr = [0 for i in range(1000)]
4)方法四:使用*运算符

运算符可以用作[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+= 1stop = 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))

输出结果

for循环所用的平均时间:0.008704814910888672
while循环所用的平均时间:0.0133302903175354
列表推导所用的平均时间:0.003199863433837891
* 运算符所用的平均时间: 0.00023694276809692382

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

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

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

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

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

Python初始化列表相关推荐

  1. python空列表列表初始化_Python如何初始化列表?

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

  2. python怎么创建列表_用Python将一个列表分割成小列表的实例讲解 Python 如何创建一个带小数的列表...

    python里有一个列表,列表里有几个小列表,小列表#冒泡排序:scoreList = [['a',98],['c',45],['b',70],['d',85],['h',85],['f',92],[ ...

  3. python中列表操作

    2019独角兽企业重金招聘Python工程师标准>>> 目录: 1:序列操作    ------索引    ------分片    ------步长    ------序列运算    ...

  4. Python list 列表方法

    Python List 方法 index() 方法 count()方法 append()方法 extend()方法 remove()方法 del()方法 pop()方法 reverse()方法 ins ...

  5. C++构造函数初始化列表与构造函数中的赋值的区别

    转载 C++构造函数初始化列表与构造函数中的赋值的区别 2016-12-10 15:16:51 xingpacer 阅读数 10391更多 分类专栏: C++相关 查看全文 http://www.ta ...

  6. python有序列表无序列表区别_用Python链表实现有序表与无序表

    用Python链表实现有序表与无序表 <数据结构与算法>MOOC(北大地空)课堂笔记 2020.4 by dlnb526 啥是链表 链表,顾名思义,顾名思义,链表像锁链一样,由一节节节点连 ...

  7. SIGIA_4P python学习 列表 字典 集合 面对对象编程 闭包 装饰器 函数式编程 作用域 异常处理

    SIGIA_4P python学习 列表 字典 集合 面对对象编程 闭包 装饰器 函数式编程 作用域 异常处理 本文连接 简介 SIGIA_4P 网址 a. 课程OKR Objectives and ...

  8. Python 的列表运算和列表常用函数

    Python 的列表运算和常用函数 1. 列表的运算 1.1 列表相加 1.2. 列表相乘 1.3. None.空列表和初始化 1.4. 列表的比较 1.5. 运算符 in 2. 列表的常用函数 1. ...

  9. Python创建列表

    Python创建列表 前言 具体创建 批量创建 一维列表 二维列表 补充 前言 Python中一般由列表代替数组,列表也有一维列表和二维列表之分,本文介绍如何创建列表,创建方法分为具体创建和批量创建, ...

最新文章

  1. python小游戏代码大全-Python实现打砖块小游戏代码实例
  2. pat天梯赛L1-052. 2018我们要赢
  3. 枚举类型(C# 编程指南)
  4. linux 操作mysql 数据库命令_在Linux上用命令怎么连接数据库
  5. css 字符过长...
  6. Oracle迁移到MySQL性能下降的注意点
  7. 【读书笔记】金字塔原理-构建金字塔的层级关系
  8. QQ邮箱代收Gmail邮箱
  9. html_09网页超链接
  10. 面试系列-3 限流场景实践
  11. 项目管理-成熟度模型、量化项目管理
  12. 【项目10】python+flask搭建CNN在线识别手写中文网站
  13. python时间函数纳秒_在Python中以秒和纳秒获取POSIX / Unix时间?
  14. 女孩学医好还是学计算机好,女生选择学医好吗 学医有多累
  15. STVD生成HEX格式文件
  16. 微信小程序python解析获取用户手机号_微信小程序如何获取用户绑定手机号
  17. Stata基础(一)
  18. OpenCV 图像分块 分块图像合并
  19. Oracle客户端安装INS-30131
  20. 90后,是被逼创业的,大家觉得呢?

热门文章

  1. jq修改class_JQuery中怎么设置class
  2. windows开发的qt项目移植到linux平台
  3. 教室人数检测matlab代码,教室人数检测器.pdf
  4. Zend Guard loader 免费下载教程介绍大全
  5. jsp显示服务器域名,jsp获取服务器域名
  6. 公务员备考(十九) 申论
  7. java中关于购物车的面试,购物车的总价解决方案
  8. 计算机等级考试建议报考,全国计算机二级考试:科目报考建议
  9. 【unity基础_Day02】 Tranform组件及常见的API
  10. 废了九牛二虎之力阿里云备案通过了,为毛还是不能访问?还要我去备案??坑爹啊...