2008-10-09 81 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