web-dev-qa-db-fra.com

Comptage des éléments de tableau dans Python

Comment puis-je compter le nombre d'éléments dans un tableau, car contrairement à logic, array.count (string) ne compte pas tous les éléments du tableau, il recherche simplement le nombre d'occurrences de string.

131
UnkwnTech

La méthode len () renvoie le nombre d'éléments de la liste.

Syntaxe:

len(myArray)

Par exemple:

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

Sortie:

3
263
Trent

len est une fonction intégrée qui appelle la fonction membre __len__ de l'objet conteneur donné pour obtenir le nombre d'éléments contenus dans l'objet.

Les fonctions encadrées par des traits de soulignement doubles sont généralement des "méthodes spéciales" qui implémentent l'une des interfaces standard de Python (conteneur, numéro, etc.). Des méthodes spéciales sont utilisées via le sucre syntaxique (création d’objet, indexage et découpage de conteneur, accès aux attributs, fonctions intégrées, etc.).

Utiliser obj.__len__() ne serait pas la bonne façon d'utiliser la méthode spéciale, mais je ne vois pas pourquoi les autres ont été modérés autant.

25
Jeremy Brown

Si vous avez un tableau multi-dimensionnel, len () peut ne pas vous donner la valeur que vous recherchez. Par exemple:

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

Ce bloc de code renverra true, vous indiquant que la taille du tableau est 2. Cependant, il y a en fait 10 éléments dans ce tableau 2D. Dans le cas de tableaux multidimensionnels, len () vous donne la longueur de la dimension première du tableau, c.-à-d.

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

Pour obtenir le nombre d'éléments dans un tableau multidimensionnel de forme arbitraire:

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

Ou,

myArray.__len__()

si vous voulez être oopy; "len (myArray)" est beaucoup plus facile à taper! :)

3
Kevin Little

Avant de voir cela, je me suis dit: "Je dois trouver un moyen de faire ça!"

for tempVar in arrayName: tempVar+=1

Et puis j'ai pensé: "Il doit y avoir un moyen plus simple de faire cela." et j'avais raison.

len(arrayName)

1
Evan Young