172 votos

Contar los elementos de la matriz en Python

¿Cómo puedo contar el número de elementos de un Array? Porque, contrariamente a la lógica, Array.count(string) no cuenta todos los elementos del Array, sólo busca el número de ocurrencias de la cadena.

317voto

Trent Puntos 5924
len(myArray)

25voto

Jeremy Brown Puntos 4950

len es una función incorporada que llama a los objetos contenedores dados __len__ función de miembro para obtener el número de elementos en el objeto.

Las funciones con doble subrayado suelen ser "métodos especiales" que implementan una de las interfaces estándar en Python (contenedor, número, etc.). Los métodos especiales se utilizan mediante el azúcar sintáctico (creación de objetos, indexación y corte de contenedores, acceso a atributos, funciones incorporadas, etc.).

Usando obj.__len__() no sería la forma correcta de usar el método especial, pero no veo por qué los otros fueron modulados tanto.

14voto

user2993689 Puntos 213

Si tienes un Array multidimensional, len() podría no darte el valor que buscas. Por ejemplo:

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

Este bloque de código devolverá true, diciéndole que el tamaño del Array es 2. Sin embargo, en realidad hay 10 elementos en este Array 2D. En el caso de los arrays multidimensionales, len() le da la longitud del primero dimensión del Array, es decir

import numpy as np
len(a) == np.shape(a)[0]

Para obtener el número de elementos en un Array multidimensional de forma arbitraria:

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

3voto

Kevin Little Puntos 5406

O,

myArray.__len__()

si quieres ser oopy; "len(myArray)" es mucho más fácil de escribir! :)

2voto

Evan Young Puntos 27

Antes de ver esto, pensé: "¡Tengo que hacer una forma de hacer esto!".

for tempVar in arrayName: tempVar+=1

Y entonces pensé: "Debe haber una forma más sencilla de hacer esto", y tenía razón.

len(arrayName)

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X