Dans cet article, nous discuterons de différentes façons de vérifier si une liste contient une chaîne vide ou vide en python.
Utilisez any() et List Comprehension pour vérifier si la liste contient une chaîne vide
Nous avons créé une fonction pour vérifier si une chaîne est vide. Il considérera également une chaîne comme vide si elle ne contient que des espaces blancs,
import re def is_empty_or_blank(msg): """ This function checks if given string is empty or contain only shite spaces""" return re.search("^\s*$", msg)
Utilisons maintenant cette fonction pour vérifier si une liste contient une chaîne vide ou vide,
# Create a list of string list_of_str = ['11', 'This', 'is ', 'a', '', ' ', 'sample'] # Check if list contains any empty string or string with spaces only result = any([is_empty_or_blank(elem) for elem in list_of_str]) if result: print('Yes, list contains one or more empty strings') else: print('List does not contains any empty string')
Sortie :
Yes, list contains one or more empty strings
Cela confirme que notre liste contient une ou plusieurs chaînes vides / vides.
Logique de cette approche :
En utilisant la compréhension de liste, nous avons créé une liste booléenne à partir de notre liste d'origine. Si un élément dans la liste booléenne est True, cela signifie que l'élément correspondant
dans la liste d'origine est une chaîne vide ou vide.
Algorithme :
- Créez d'abord une liste booléenne vide.
- Parcourez ensuite chaque élément de la liste en utilisant la compréhension de liste et pour chaque élément de la liste,
- Vérifiez s'il est vide ou non en utilisant la fonction is_empty_or_blank().
- Si l'élément est une chaîne vide,
- Ensuite, ajoutez True dans la liste booléenne.
- Sinon
- Ajouter bool à la liste bool.
- Si l'élément est une chaîne vide,
- Vérifiez s'il est vide ou non en utilisant la fonction is_empty_or_blank().
- Ensuite, passez cette liste booléenne à any() pour vérifier si la liste booléenne contient une valeur True ou non,
- Si oui
- Ensuite, il confirme que notre liste d'origine contient également une liste vide ou vide.
- autrement
- Il n'y a pas de chaîne vide/vide dans la liste d'origine.
- Si oui
Vérifier si la liste contient une chaîne vide en utilisant la boucle for
Au lieu d'utiliser la compréhension de liste, nous pouvons également implémenter la logique de la solution précédente en utilisant la boucle for, c'est-à-dire
# Create a list of string list_of_str = ['11', 'This', 'is ', 'a', '', ' ', 'sample'] result = False # iterate over all the elements in list to check if list contains any empty string for elem in list_of_str: # Check if string is empty or contain only spaces if is_empty_or_blank(elem): result = True break; if result: print('Yes, list contains one or more empty string') else: print('List does not contains any empty string')
Sortie :
Yes, list contains one or more empty strings
Cela confirme que notre liste contient une ou plusieurs chaînes vides ou vides.
Ici, nous avons itéré sur tous les éléments de la liste et pour chaque élément, nous avons vérifié s'il s'agissait d'une chaîne vide ou non. Dès qu'il a rencontré la première chaîne vide ou vide, il a cessé de vérifier les éléments restants. Alors que, s'il n'y a pas de chaînes vides dans la liste, il ne confirme qu'après avoir vérifié tous les éléments de la liste.
L'exemple complet est le suivant,
import re def is_empty_or_blank(msg): """ This function checks if given string is empty or contain only shite spaces""" return re.search("^\s*$", msg) def main(): print('*** Check if list contains any empty string using list comprehension ***') # Create a list of string list_of_str = ['11', 'This', 'is ', 'a', '', ' ', 'sample'] # Check if list contains any empty string or string with spaces only result = any([is_empty_or_blank(elem) for elem in list_of_str]) if result: print('Yes, list contains one or more empty strings') else: print('List does not contains any empty string') print('*** Check if list contains any empty string using for loop ***') result = False # iterate over all the elements in list to check if list contains any empty string for elem in list_of_str: # Check if string is empty or contain only spaces if is_empty_or_blank(elem): result = True break; if result: print('Yes, list contains one or more empty string') else: print('List does not contains any empty string') if __name__ == '__main__': main()
Sortie :
*** Check if list contains any empty string using list comprehension *** Yes, list contains one or more empty strings *** Check if list contains any empty string using for loop *** Yes, list contains one or more empty string