PHP前端开发

Python如何初始化列表?

百变鹏仔 2周前 (01-23) #Python
文章标签 初始化

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

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

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

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

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

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

立即学习“Python免费学习笔记(深入)”;

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

arr = []i = 0while(i<p><span style="font-size: 18px;"><strong>方法三:使用列表推导(List Comprehension) </strong></span></p><p>列表推导(List Comprehension) 是一种数学家用来实现众所周知标记集合的Python方式。它由方括号组成,包含一个表达式,后跟一个for子句,后面跟一个可选的if子句。</p><p>表达式可以是我们想要放入列表中的任何类型的对象;由于我们用零初始化列表,因此我们的表达式将只为0。</p><pre class="brush:php;toolbar:false">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<p>输出:</p><p><img src="https://img.php.cn/upload/image/334/128/846/1552967571413935.jpg" title="1552967571413935.jpg" alt="2.jpg"></p><p>注意:时间将根据执行此代码的平台而有所不同。这些时间仅用于研究这些初始化方法的相对性能。</p><p>● 可以看出,for和while循环所用时间几乎相同。</p><p>● 列表推导的性能比for和while循环要好得多,前者的速度要快3-5倍。当我们尝试创建1-1000的数字列表时,可以看到另一个这种差异的例子。使用列表推导比使用append()要好得多。</p><pre class="brush:php;toolbar:false">a = [i for i in range(1,1001)]

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

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