首頁  >  文章  >  後端開發  >  Python如何初始化列表?

Python如何初始化列表?

青灯夜游
青灯夜游原創
2019-03-19 12:00:0815863瀏覽

Python是一種非常靈活的語言,可以透過多種方式執行單一任務,例如,可以透過多種方式執行初始化清單。以下這篇文章就來帶大家了解幾種Python初始化的方法,並比較一下這幾種方法的效率,希望對大家有幫助。

Python如何初始化列表?

下面我們就來介紹在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))

輸出:

Python如何初始化列表?

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

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

● 列表推導的效能比for和while循環好得多,前者的速度要快3-5倍。當我們嘗試建立1-1000的數字清單時,可以看到另一個這種差異的例子。使用列表推導比使用append()好得多。

a = [i for i in range(1,1001)]

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

相關影片教學推薦:《Python教學

以上就是本篇文章的全部內容,希望能對大家的學習有所幫助。更多精彩內容大家可以追蹤php中文網相關教學欄位! ! !

以上是Python如何初始化列表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn