Skip to content

Ottenere il numero di elementi di una lista in Python

Python

In Python, la funzione incorporata len() viene utilizzata per ottenere la lunghezza (il numero di elementi) di una lista.

In questo articolo vengono descritti i seguenti contenuti.

  • Ottieni il numero di elementi in un elenco con len()
  • Per elenchi bidimensionali (elenchi di elenchi)
  • Per elenchi multidimensionali

Vedere il seguente articolo per l’utilizzo di len() per oggetti di altri tipi.

Puoi ottenere il numero totale di elementi con len(). Se vuoi ottenere il numero occorrenze di un elemento, usa il metodo count() o Counter delle raccolte di librerie standard.

Ottieni il numero di elementi in un elenco con len()

Passando una lista come argomento della funzione incorporata len(), il suo numero di elementi viene restituito come valore intero.

l = [0, 1, 2, 3]

print(len(l))
# 4

Per elenchi bidimensionali (elenchi di elenchi)

Se un elenco bidimensionale (un elenco di elenchi) viene passato direttamente a len(), viene restituito il numero di elenchi archiviati come elementi.

l_2d = [[0, 1, 2], [3, 4, 5]]

print(len(l_2d))
# 2

Il numero di elementi in ogni elenco (il numero di elementi in ogni riga) può essere ottenuto utilizzando le comprensioni dell’elenco.

print([len(v) for v in l_2d])
# [3, 3]

Il numero totale di elementi può essere calcolato con sum().

Qui viene utilizzata una versione del generatore delle comprensioni dell’elenco (= espressioni del generatore). Le espressioni del generatore sono racchiuse tra (), non [], ma quando vengono utilizzate all’interno di (), come in questo esempio, non è necessario scrivere () due volte e () delle espressioni del generatore può essere omesso.

print(sum(len(v) for v in l_2d))
# 6

Se NumPy è installato nel tuo ambiente, puoi convertirlo in un array NumPy ndarray.

È possibile ottenere il numero totale di elementi con la dimensione dell’attributo e la forma (numero di righe e colonne) con la forma dell’attributo.

import numpy as np

l_2d = [[0, 1, 2], [3, 4, 5]]
arr_2d = np.array(l_2d)

print(arr_2d)
# [[0 1 2]
#  [3 4 5]]

print(arr_2d.size)
# 6

print(arr_2d.shape)
# (2, 3)

Per elenchi multidimensionali

Prendi come esempio un elenco i cui elementi sono elenchi di dimensioni variabili.

Se questo viene passato a len(), viene restituito il numero di oggetti archiviati come elementi.

l_multi = [[0, 1, 2, [10, 20, 30]], [3, 4, 5], 100]

print(len(l_multi))
# 3

Inoltre, se lo passi a numpy.array(), viene generato un array NumPy ndarray i cui elementi sono oggetti di tipo elenco con un numero variabile di elementi. le dimensioni e la forma vengono calcolate anche per gli oggetti archiviati come elementi.

arr_multi = np.array(l_multi)
print(arr_multi)
# [list([0, 1, 2, [10, 20, 30]]) list([3, 4, 5]) 100]

print(arr_multi.size)
# 3

print(arr_multi.shape)
# (3,)

Per ottenere il numero totale di elementi in un elenco che elenchi di dimensioni variabili, è possibile definire una funzione che calcola ricorsivamente il numero di elementi nell’elenco.

def my_len(l):
    count = 0
    if isinstance(l, list):
        for v in l:
            count += my_len(v)
        return count
    else:
        return 1

l_multi = [[0, 1, 2, [10, 20, 30]], [3, 4, 5], 100]
print(my_len(l_multi))
# 10

l_2d = [[0, 1, 2], [3, 4, 5]]
print(my_len(l_2d))
# 6

l = [0, 1, 2, 3]
print(my_len(l))
# 4