2008-10-09 82 views
91

如何計算數組中元素的數量,因爲與邏輯相反array.count(字符串)不計算數組中的所有元素,它只是搜索字符串出現次數。在Python中計數數組元素

+0

這實際上不是計數列表中元素的重複,因爲數組可能更高維,對吧?除非數組是1D,否則數組的len()不是數組中元素的個數。您可能會爭辯,列表的列表也是更高維的,但頂級列表的優先級更高。對於這個頂級列表,元素的數量就是它的`len()`,因爲它基本上是一維的。 – 2018-01-19 22:56:22

回答

212

方法len()返回列表中元素的數量。

語法:

len(myArray) 

如:

myArray = [1, 2, 3] 
len(myArray) 

輸出:

3 

+0

你能解釋一下你的答案;) – 2015-07-17 03:07:35

+0

這隻適用於平面,一維列表或數組,但是`print len([[0,0],[0,0]])`出現爲2, `len(array([[0,0],[0,0]]))`。 – 2018-01-19 22:49:41

3

或者,

myArray.__len__() 

如果你想要oopy; 「len(myArray)」更容易打字! :)

+2

這是一個確定的Yuk。 – UnkwnTech 2008-10-09 14:32:51

+0

@Gregg Lind,這不會引入競爭條件。 (然而,它是如此得意。) – 2010-03-19 07:29:16

24

len是一個內置函數,它調用給定的容器對象的__len__成員函數來獲取對象中元素的數量。

嵌入雙下劃線的函數通常是實現Python(容器,編號等)中的標準接口之一的「特殊方法」。通過語法糖使用特殊方法(對象創建,容器索引和切片,屬性訪問,內置函數等)。

使用obj.__len__()不會是使用特殊方法的正確方法,但我不明白爲什麼其他人被改變太多了。

1

在我看到這個之前,我心想:「我需要設法做到這一點!」

for tempVar in arrayName: tempVar+=1 

然後我想,「必須有一個更簡單的方法來做到這一點。」我是對的。

len(arrayName)

11

如果你有一個多維數組,LEN()可能不會給你你正在尋找的價值。例如:

a = np.arange(10).reshape(2, 5) 
print len(a) == 2 

此代碼塊將返回true,告訴你數組的大小是2但是,在實際上在這個二維數組的10個元素。在多維陣列的情況下,LEN()爲您提供陣列的第一尺寸即

len(a) == np.shape(a)[0] 

長度要獲得在任意形狀的多維數組元素的數目:

size = 1 
for dim in np.shape(a): size *= dim