Skip to content

Obtenir le nombre d’éléments d’une liste en Python

En Python, la fonction intégrée len() est utilisée pour obtenir la longueur (le nombre d’éléments) d’une liste.

Cet article décrit le contenu suivant.

  • Obtenir le nombre d’éléments dans une liste avec len()
  • Pour les listes à deux dimensions (listes de listes)
  • Pour les listes multidimensionnelles

Consultez l’article suivant pour l’utilisation de len() pour les objets d’autres types.

Vous pouvez obtenir le nombre total d’éléments avec len(). Si vous souhaitez obtenir le nombre d’occurrences d’un élément, utilisez la méthode count() ou Counter des collections de bibliothèque standard.

Obtenir le nombre d’éléments dans une liste avec len()

En passant une liste comme argument de la fonction intégrée len(), son nombre d’éléments est renvoyé sous la forme d’une valeur entière.

l = [0, 1, 2, 3]

print(len(l))
# 4

Pour les listes à deux dimensions (listes de listes)

Si une liste à deux dimensions (une liste de listes) est passée directement à len(), le nombre de listes stockées en tant qu’éléments est renvoyé.

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

print(len(l_2d))
# 2

Le nombre d’éléments dans chaque liste (le nombre d’éléments dans chaque ligne) peut être obtenu à l’aide des compréhensions de liste.

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

Le nombre total d’éléments peut être calculé avec sum().

Une version génératrice des compréhensions de liste (= expressions génératrices) est utilisée ici. Les expressions de générateur sont entourées de (), pas de [], mais lorsqu’elles sont utilisées entre (), comme dans cet exemple, il n’est pas nécessaire d’écrire () deux fois, et () des expressions de générateur peut être omis.

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

Si NumPy est installé dans votre environnement, vous pouvez le convertir en un tableau NumPy ndarray.

Vous pouvez obtenir le nombre total d’éléments avec la taille de l’attribut et la forme (nombre de lignes et de colonnes) avec la forme de l’attribut.

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)

Pour les listes multidimensionnelles

Prenons comme exemple une liste dont les éléments sont des listes de tailles variables.

Si ceci est passé à len(), le nombre d’objets stockés en tant qu’éléments est renvoyé.

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

print(len(l_multi))
# 3

De plus, si vous le transmettez à numpy.array(), un ndarray de tableau NumPy dont les éléments sont des objets de type liste avec un nombre variable d’éléments est généré. la taille et la forme sont également calculées pour les objets stockés en tant qu’éléments.

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,)

Pour obtenir le nombre total d’éléments dans une liste qui stocke des listes de tailles différentes, vous pouvez définir une fonction qui calcule de manière récursive le nombre d’éléments dans la liste.

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