下面我们就来引见在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))
输出:
注重:时候将依据实行此代码的平台而有所不同。这些时候仅用于研讨这些初始化要领的相对机能。
● 能够看出,for和while轮回所用时候险些雷同。
● 列表推导的机能比for和while轮回要好很多,前者的速率要快3-5倍。当我们尝试建立1-1000的数字列表时,能够看到另一个这类差别的例子。运用列表推导比运用append()要好很多。
a = [i for i in range(1,1001)]
● 运用*运算符比其他要领更快,这是您应当初始化列表的体式格局
相干视频教程引荐:《Python教程》
以上就是本篇文章的全部内容,愿望能对人人的进修有所协助。更多精彩内容人人能够关注ki4网相干教程栏目!!!
以上就是Python怎样初始化列表?的细致内容,更多请关注ki4网别的相干文章!