Python初始化列表

2021-09-20 07:10:25 字數 2204 閱讀 2078

python初始化列表

下面我們就來介紹在python中初始化列表(我們建立大小為1000並使用零初始化的列表)的一些方法。

arr =

for i in

range

(1000):

0)

arr =

i =0

while

(i<

1000):

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):

0)# 停止時間

stop = time.time(

) # 開始時間

start = time.time(

)# 宣告空列表

a =

i =0# 執行while迴圈10000次

while

(i<

10000):

0) i+=

1 stop = time.time(

) # 開始時間

start = time.time(

)# 使用列表推導(list comprehension) 來初始化列表

a =[0

for i in

range

(10000

)]

stop = time.time(

) # 開始時間

start = time.time(

)# 使用*運算子

a =[0

]*10000

stop = time.time(

) print(+

str(

sum(forlooptime)

/100))

print(+

str(

sum(whilelooptime)

/100))

print(+

str(

sum(listcomprehensiontime)

/100))

print(+

str(

sum(staroperatortime)

/100

))

輸出結果

注意:時間將根據執行此**的平台而有所不同。這些時間僅用於研究這些初始化方法的相對效能。

● 可以看出,for和while迴圈所用時間幾乎相同。

`a =

[i ``for` `i in

range(1

,1001)]`

● 使用*運算子比其餘方法更快,這是您應該初始化列表的方式

初始化 1 預設初始化 列表初始化

初始化的基本概念 事實 初始化和賦值是兩個完全不同的操作。初始化,是建立變數時賦予其乙個初始值。賦值,是把物件的當前值擦除,用乙個新值代替。列表初始化 p39 作為c 11新標準的一部分,用花括號 來初始化變數得到了全面應用。出於某些原因,這種初始化的方式叫做列表初始化。現在,無論是初始化物件還是某...

初始化列表

與其他函式不同,建構函式除了有名字,引數列表和函式體之外,還可以有初始化列表,初始化列表以冒號開頭,後跟一系列以逗號分隔的初始化字段。在c 中,struct和class的唯一區別是預設的克訪問性不同,而這裡我們不考慮訪問性的問題,所以下面的 都以struct來演示。struct foo 初始化列表 ...

初始化列表

初始化列表一般用於建構函式賦值的操作中,它的常用賦值物件有 1 常量 常資料成員只能用初始化列表來初始化 2 引用型別 3 無參建構函式的類的物件。具體格式為 類名 形參表 如int x,int y 成員資料 x 成員資料 y 意思是成員資料繫結x,y。下面以幾個例子來說明一下 一 求圓面積 inc...