Comment vérifier si une liste est vide en Python (Pythonic Truth Values)

Découvrez les méthodes les plus pythoniques pour vérifier si une liste est vide en Python. Comparez les vérifications booléennes implicites avec les comparaisons de longueur.

Essayez cette solution dans l'éditeur

Aperçu

Dans le développement Python, vous devrez fréquemment vérifier si une liste contient des éléments avant de tenter de lire, modifier ou traiter son contenu. L'accès aux éléments d'une liste vide à l'aide de crochets (par exemple, `my_list[0]`) génère une `IndexError`, qui arrête l'exécution du programme. Par conséquent, la mise en œuvre de modèles de contrôle propres et défensifs est essentielle pour la stabilité des applications.

La manière la plus pythonique de vérifier si une liste est vide consiste à utiliser sa valeur booléenne implicite (vérité). En Python, les collections vides (y compris les listes, dictionnaires, tuples et ensembles) sont évaluées comme « False » dans un contexte booléen, tandis que les collections remplies sont évaluées comme « True ». L'écriture de « if not my_list : » est directe, hautement lisible et conforme aux directives PEP 8.

Tout en comparant la longueur de la liste à zéro (par exemple, `if len(my_list) == 0:`) ou en comparant la liste directement à un littéral de liste vide (par exemple, `if my_list == []:`) fonctionne également, ces approches sont généralement déconseillées car elles sont moins concises et peuvent être légèrement plus lentes. L'adoption des tests de valeur de vérité intégrés à Python rend votre code plus propre et plus efficace.

Sortie de code et d'exécution

Ce script montre différentes méthodes pour vérifier si une liste est vide en Python.

empty_list_check.py
Essayez dans l'éditeur
empty_list = []
full_list = [10, 20, 30]

# Method 1: The Pythonic Way (Implicit boolean check)
if not empty_list:
    print("empty_list is indeed empty!")

if full_list:
    print("full_list has elements inside!")

# Method 2: Length comparison (Less Pythonic, but functional)
if len(empty_list) == 0:
    print("Length of empty_list is 0.")
Sortie terminale
empty_list is indeed empty!
full_list has elements inside!
Length of empty_list is 0.

Mise en œuvre étape par étape

  • Écrivez if not my_list : pour vérifier si la liste est vide (approche la plus pythonique).
  • Écrivez if my_list : pour vérifier si la liste contient un ou plusieurs éléments.
  • Évitez d'utiliser len(my_list) == 0 ou my_list == [] pour vérifier le vide.

Foire aux questions

Pourquoi « if not my_list » est-il préféré à « if len(my_list) == 0 » ?

Il est plus lisible, idiomatique et légèrement plus rapide car il évite d’invoquer la fonction de recherche len() et la comparaison d’entiers.

Cette vérification fonctionne-t-elle pour d'autres collections comme des dictionnaires ou des tuples ?

Oui, exactement la même règle de véracité s'applique aux dicts vides ({}), aux tuples vides (()), aux ensembles vides (set()) et aux chaînes vides ("").

Sujets connexes

Ressources Python recommandées

Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.