List等效於其他語言中的數組,其額外的好處是可以動態調整大小。在Python中,列表是數據結構中的一種容器,用於同時存儲多個數據。與Sets不同,Python中的列表是有序的,並且具有確定的計數。
有多種方法可以迭代Python中的列表。讓我們看看在Python中迭代列表的所有不同方法,以及它們之間的性能比較。
方法1:使用For循環
1個 3 5 7 9
方法2: For循環和range()
如果我們要使用從數字x到數字y迭代的傳統for循環。
1個 3 5 7 9
如果我們可以對元素進行迭代,則不建議對索引進行迭代(如方法1中所述)。
方法3:使用while循環
1個 3 5 7 9
方法4:使用列表理解(可能是最具體的方法)。
1個 3 5 7 9
方法5:使用enumerate()
如果我們想將列表轉換為可迭代的元組列表(或基於條件檢查獲得索引,例如在線性搜索中,可能需要保存最小元素的索引),則可以使用enumerate()函數。
0,1 1、3 2、5 3、7 4、9
注意:甚至方法2都可以用來查找索引,但是方法1不能(除非每次迭代都增加一個額外的變量),方法5給出了這種索引的簡明表示。
方法#6:使用numpy
對於非常大的n維列表(例如圖像數組),有時最好使用外部庫(例如numpy)。
0 1個 2 3 4 5 6 7 8
我們可以np.ndenumerate()
用來模仿枚舉的行為。numpy的強大功能來自於我們甚至可以控制訪問元素的方式(Fortran順序而不是C順序,例如:)),但一個警告是np.nditer
默認情況下將數組視為只讀,因此一個人必須傳遞額外的標志,例如op_flags=[‘readwrite’]
它才能修改元素