подсчет элементов массива в python

<p>как можно посчитать количество элементов в массиве, потому что в отличие от логики array.count (string) не считает все элементы в массиве, он просто ищет количество вхождений строки.</p>

<p>метод len () возвращает количество элементов в списке.</p><p>синтаксис:</p><pre><code>len(myarray) </code></pre><p>например:</p><pre><code>myarray = [1, 2, 3] len(myarray) </code></pre><p>результат:</p><pre><code>3 </code></pre>

<p><code>len</code> - это встроенная функция, которая вызывает функцию-член данного объекта-контейнера <code>\_\_len\_\_</code> для получения количества элементов в объекте.</p><p>функции, заключенные в двойные подчеркивания, обычно являются "специальными методами", реализующими один из стандартных интерфейсов в python (контейнер, число и т.д.). с помощью синтаксического сахара используются специальные методы (создание объектов, индексирование и нарезка контейнеров, доступ к атрибутам, встроенные функции и т.д.).</p><p>использование <code>obj.\_\_len\_\_()</code> не было бы правильным способом использования специального метода, но я не понимаю, почему остальные так сильно урезаны.</p>

<p>если у вас есть многомерный массив, len () может не дать вам искомое значение. например:</p><pre><code>a = np.arange(10).reshape(2, 5) print len(a) == 2 </code></pre><p>этот блок кода вернет true, сообщая, что размер массива равен 2. однако в этом двумерном массиве фактически есть 10 элементов. в случае многомерных массивов len () дает длину измерения <em>first</em> массива, т.е.</p><pre><code>len(a) == np.shape(a)[0] </code></pre><p>чтобы получить количество элементов в многомерном массиве произвольной формы:</p><pre><code>size = 1 for dim in np.shape(a): size *= dim </code></pre>

<p>или же,</p><pre><code>myarray.\_\_len\_\_() </code></pre><p>если хочешь быть опой; "len (myarray)" намного проще набрать! :)</p>

<p>прежде чем я увидел это, я подумал про себя: "мне нужно найти способ сделать это!"</p><pre><code>for tempvar in arrayname: tempvar+=1 </code></pre><p>и тогда я подумал: "должен быть более простой способ сделать это". и я был прав.</p><p><code>len(arrayname)</code></p>