Geekflare est soutenu par notre public. Nous pouvons gagner des commissions d'affiliation en achetant des liens sur ce site.
In Développement Dernière mise à jour : 13 juillet 2023
Partager sur:
Scanner de sécurité des applications Web Invicti – la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

Lorsque vous travaillez avec des itérables Python, trouver le nombre d'éléments contenus dans les itérables est une opération courante. Apprenez à utiliser les fonctions intégrées de Python len pour trouver la longueur des itérables et bien plus encore.

Python propose une suite de structures de données intégrées et un ensemble de méthodes pour travailler avec eux. De plus, il existe des fonctions intégrées qui sont utiles lorsque vous travaillez avec ces structures de données. Une telle fonction est len() qui donne le nombre d'éléments présents dans un itérable.

Dans ce tutoriel, nous allons apprendre à utiliser le len() fonction avec des listes, des tuples, des chaînes, etc. Nous verrons également quelques cas d'utilisation courants.

Commençons !👩‍🏫

Syntax of the Python len() Function

Voici la syntaxe pour utiliser Python len fonction:

len(iterable)

Comme on le voit, le len() fonction a besoin un paramètre, qui est tout itérable valide. L'itérable fait souvent partie d'une liste, d'un tuple ou d'une chaîne. Mais il peut aussi s'agir de tout autre type valide.

On voit que la syntaxe pour utiliser le len() la fonction est super simple. Passons ensuite au code de quelques exemples.

📑 Pour les exemples de code de ce tutoriel, vous pouvez coder dans un REPL Python.

Using the len() Function with Iterables

Utiliser-la-fonction-len-avec-Iterables

Avec séquences

Vous pouvez utiliser le len() pour trouver la longueur des itérables tels que les listes, les tuples et les chaînes.

Voici un exemple :

>>> nums = [9,3,6,1,2]
>>> len(nums)
5

>>> nums_tup = (9,3,6,1,2)
>>> len(nums_tup)
5

Pour ces structures de données qui stockent une séquence, vous accéderez généralement aux éléments à l'aide de leur index ou obtiendrez une tranche (sous-séquence) selon vos besoins.

Avec d'autres collections

Vous pouvez également utiliser la len() fonctionner avec d'autres collections Python comme ensembles et Dictionnaires.

Ces structures de données sont des collections non ordonnées. Bien que vous ne soyez peut-être pas intéressé par la commande des articles, il est toujours utile d'obtenir le nombre total d'articles de la collection.

>>> nums_set = set(nums)
>>> len(nums_set)
5

>>> prices = {'Notebook':5,'Pencil case':7,'Bookmarks':3,'Pens':1,'Markers':8}
>>> len(prices)
5

Common Use Cases of the Python len() Function

Jusqu'à présent, nous avons vu des exemples simples d'utilisation de len() fonction pour obtenir le nombre d'éléments dans un itérable. Voyons maintenant où nous pouvons l'utiliser en pratique.

# 1. Itération à l'aide de boucles For

Python pour la boucle fournit une construction pour parcourir les itérables dans le pour un élément dans la syntaxe itérable. Mais si vous souhaitez accéder à l'index de chaque élément au lieu de l'élément lui-même ou à la fois l'index et les éléments ensemble, vous pouvez utiliser le range() fonction comme indiqué :

>>> nums = [9,2,4,7,8]
>>> for i in range(len(nums)):
...      print(f"Index {i}: {nums[i]}")

Parce que range(N) donne la suite d'entiers 0,1,2,…,N – 1, en utilisant range(len(nums))  nous donne l'ensemble des indices valides à parcourir.

# Output
Index 0: 9
Index 1: 2
Index 2: 4
Index 3: 7
Index 4: 8

Cependant, la méthode Pythonic recommandée pour accéder à la fois à l'index et à l'élément utilise le fonction d'énumération:

>>> nums = [9,2,4,7,8]
>>> for idx,num in enumerate(nums):
...     print(f"Index {idx}: {num}")
# Output
Index 0: 9
Index 1: 2
Index 2: 4
Index 3: 7
Index 4: 8

# 2. Boucle conditionnelle à l'aide de boucles While

Supposons que vous ayez une liste de nombres nums. La méthode des listes pop() supprime le dernier élément de la liste et le renvoie.

Tant que la longueur du nums liste len(nums) est supérieur à zéro - il y a au moins un élément qui peut être supprimé.

>>> nums = [9,2,4,7,8]
>>> while len(nums) > 0:
...     nums.pop()
# Output
8
7
4
2
9

L'exemple ci-dessus est une manière plus explicite d'écrire ce qui suit :

>>> nums = [9,2,4,7,8]
>>> while nums:
...     nums.pop()

while nums: est équivalent à la condition "tant que la liste des chiffres n'est pas vide".

# 3. Vérification et validation de la longueur des itérables

Une autre utilisation courante de la fonction len consiste à vérifier et à valider la longueur de certains itérables. 

Ici, nous vérifions si username est une chaîne valide basée sur la longueur (calculée à l'aide de la len() une fonction):

>>> username = "another-random-user"
>>> if len(username) > 10:
...     print("Username too long; should be 10 characters long at max.")
... elif len(username) < 5:
...     print("Username too short; should be at least 5 characters long.")
... else:
...     print("Valid username!")
Username too long; should be 10 characters long at max.

# 4. Compréhensions de listes et de dictionnaires

Les compréhensions en Python fournissent une syntaxe concise pour construire de nouveaux itérables à partir de ceux existants. Nous pouvons utiliser des fonctions intégrées dans une expression de compréhension.

Compréhension de liste

Dans ce nouvel article concernant notre nouveau projet compréhension de la liste, nous utilisons le len() fonction pour obtenir la longueur de chaque chaîne dans le languages liste.

>>> languages = ['Python','C','Rust','JavaScript']
>>> len_langs = [len(lang) for lang in languages]
>>> len_langs
[6, 1, 4, 10]

Compréhension du dictionnaire

Dans cette compréhension du dictionnaire, nous utilisons le languages liste et le len() fonction pour construire un dictionnaire :

>>> languages = ['Python','C','Rust','JavaScript']
>>> lang_len = {lang:len(lang) for lang in languages}
>>> lang_len
{'Python': 6, 'C': 1, 'Rust': 4, 'JavaScript': 10}

Ici, les clés et les valeurs sont respectivement les chaînes de langue et la longueur des chaînes de langue.

# 5. Paramètre clé dans le tri personnalisé

Python a la méthode sort() intégrée pour trier les listes Python en place et le sorted() une fonction pour trier les listes et autres itérables.

Dans les deux cas, vous pouvez utiliser le key paramètre pour personnaliser le tri.

Ici, on trie languages liste basée sur la longueur de la chaîne.

>>> languages = ['Python','C','Rust','JavaScript']
>>> languages.sort(key=len)
>>> languages
['C', 'Rust', 'Python', 'JavaScript']

Dans l'extrait ci-dessous, nous utilisons le sorted() fonction pour obtenir une liste triée.

>>> languages = ['Hindi','English','German','French']
>>> sorted(languages,key=len)
['Hindi', 'German', 'French', 'English']

Dans cet exemple, 'Allemand' et 'Français' ont chacun 6 caractères. Parce que le sorted() effectue un tri stable, l'ordre dans la liste d'origine est conservé.

# 6. Longueur des tableaux NumPy

Vous pouvez également utiliser la len() fonctionner avec d'autres structures de données comme Tableaux NumPy.

>>> import numpy as np
>>> np_array = np.array([3,4,6,9])
>>> type(np_array)
<class 'numpy.ndarray'>
>>> len(np_array)
4

Dans ce cas, np_array est un vecteur à 4 éléments. Donc len(np_array) renvoie 4, le nombre d'éléments présents dans le tableau.

Une matrice est un tableau à deux dimensions.

Prenons l'exemple suivant. len(np_array) est 2, qui est le nombre de lignes.

>>> matrix = [[1,2,3],[4,5,6]]
>>> np_array = np.array(matrix)
>>> np_array
array([[1, 2, 3],
       [4, 5, 6]])
>>> len(np_array)
2

Pour comprendre, revenons à matrix. Nous avons une structure de liste imbriquée où la liste externe contient deux listes imbriquées. Et le len() La fonction renvoie le nombre d'éléments dans un conteneur (ici, il s'agit de deux listes) :

>>> help(len)
Help on built-in function len in module builtins:

len(obj, /)
    Return the number of items in a container.

Cependant, lorsque vous commencez à travailler avec des tableaux multidimensionnels, il est recommandé d'utiliser le shape attribut à la place.

>>> np_array.shape
(2, 3)

Common Pitfalls To Avoid When Using Python’s len() Function

pièges

Pour conclure notre discussion, passons en revue certains des pièges courants à éviter lors de l'utilisation de la fonction len en Python.

Utilisation de len() avec des types de données non itérables

Nous savons que la fonction len ne prend que des itérables valides comme argument. Cela signifie que si vous appelez la fonction len avec - un type de données invalide - qui n'est pas itérable, vous rencontrerez des erreurs.

Ces types non valides incluent les types de données de base tels que les entiers, les nombres à virgule flottante et les booléens :

>>> len(2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: object of type 'int' has no len()

>>> len(True)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: object of type 'bool' has no len()

>>> len(3.14)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: object of type 'float' has no len()

En Python, les générateurs sont des choix économes en mémoire pour les cas d'utilisation qui nécessitent la génération de séquences. L'objet générateur renvoie les éléments de la séquence, à la demande, un élément à la fois. Mais les objets générateurs n'ont pas de longueur. 

Vous rencontrerez donc des erreurs si vous essayez de calculer la longueur d'un objet générateur :

>>> nums_sq = (i*i for i in range(10))
>>> nums_sq
<generator object <genexpr> at 0x0157DBC0>
>>> len(nums_sq)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: object of type 'generator' has no len()

Utiliser len() avec des tuples de longueur un

Si vous insérez uniquement l'élément dans un tuple, Python l'interprète comme un élément unique et non comme un tuple.

Voici un exemple :

>>> nums = (1)
>>> len(nums)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: object of type 'int' has no len()

Ainsi, lorsque vous avez un tuple avec un seul élément, initialisez-le sous cette forme : tuple_name = (elt, ) pour qu'il soit interprété comme un tuple :

>>> nums = (1,)
>>> len(nums)
1

résumer

Voici un résumé de ce que nous avons couvert dans ce tutoriel :

  • Vous pouvez trouver le nombre d'éléments dans n'importe quel itérable en utilisant le len() fonction en Python. La syntaxe pour utiliser la fonction de longueur est :  len(any-valid-iterable).
  • Cela inclut des séquences telles que des listes, des tuples et des chaînes. Et d'autres collections telles que des dictionnaires et des ensembles.
  • Les len() La fonction est couramment utilisée dans les boucles et les compréhensions. 
  • Vous pouvez également utiliser la len() fonctionnent comme paramètre clé lorsque vous avez besoin de personnaliser le tri en fonction de la longueur. Par exemple : trier une liste de chaînes en fonction de leur longueur.

Ensuite, apprenez à utiliser La fonction sum() de Python.

  • Bala Priya C
    Auteur
    Bala Priya est un développeur et rédacteur technique indien avec plus de trois ans d'expérience dans le domaine de la rédaction de contenu technique. Elle partage son apprentissage avec la communauté des développeurs en créant des didacticiels techniques, des guides pratiques, etc. lire la suite
  • Narendra Mohan Mittal
    Éditeur

    Narendra Mohan Mittal est stratège principal en stratégie de marque numérique et éditeur de contenu avec plus de 12 ans d'expérience polyvalente. Il est titulaire d'un M-Tech (médaillé d'or) et d'un B-Tech (médaillé d'or) en informatique et ingénierie.


    ... lire la suite
Merci à nos commanditaires
Plus de bonnes lectures sur le développement
Alimentez votre entreprise
Certains des outils et services pour aider votre entreprise à se développer.
  • Invicti utilise Proof-Based Scanning™ pour vérifier automatiquement les vulnérabilités identifiées et générer des résultats exploitables en quelques heures seulement.
    Essayez Invicti
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, moteur de recherche et tout ce dont vous avez besoin pour collecter des données Web.
    Essayez Brightdata
  • Monday.com est un système d'exploitation de travail tout-en-un pour vous aider à gérer les projets, les tâches, le travail, les ventes, le CRM, les opérations, workflowset plus encore.
    Essayez Monday
  • Intruder est un scanner de vulnérabilités en ligne qui détecte les failles de cybersécurité de votre infrastructure, afin d'éviter des violations de données coûteuses.
    Essayez Intruder