Python初始化列表

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+= 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))

输出结果

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

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

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

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

`a = [i ``for` `i in range1,1001]`

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

Python中,有几种方法可以初始化列表。其中一种方法是使用for循环和append()函数。你可以使用以下代码来初始化一个大小为1000并且所有元素都为列表: ```python arr = \[\] for i in range(1000): arr.append(0) ``` 另一种方法是使用带计数器变量的while循环和append()函数。你可以使用以下代码来实现相同的效果: ```python arr = \[\] i = 0 while i < 1000: arr.append(0) i += 1 ``` 还有一种更简洁的方法是使用列表推导(List Comprehension)。你可以使用以下代码来初始化相同的列表: ```python arr = \[0 for i in range(1000)\] ``` 这种方法比使用循环和append()函数更高效。根据引用\[3\]中的信息,列表推导的性能比for和while循环要好得多,速度可以快3-5倍。所以在初始化列表时,推荐使用列表推导。 #### 引用[.reference_title] - *1* [python 列表 初始化](https://blog.csdn.net/whatday/article/details/125078434)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Python初始化列表](https://blog.csdn.net/a549654065/article/details/89680492)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值