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...