Comment vérifier si les valeurs d'un dictionnaire Python sont du même type

PythonPythonBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce labo (lab), vous apprendrez à vérifier si toutes les valeurs d'un dictionnaire Python sont du même type. Le labo explore le concept d'uniformité de type et montre comment utiliser la fonction all() avec type() pour vérifier que toutes les valeurs d'un dictionnaire ont le même type de données.

Le labo vous guide dans la création de scripts Python pour explorer l'uniformité de type en créant d'abord des listes avec des éléments du même type, puis des listes avec des types de données mixtes. Vous apprendrez ensuite à appliquer ces connaissances aux dictionnaires, y compris la gestion des dictionnaires vides, pour déterminer si leurs valeurs sont du même type.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python/BasicConceptsGroup -.-> python/variables_data_types("Variables and Data Types") python/BasicConceptsGroup -.-> python/numeric_types("Numeric Types") python/BasicConceptsGroup -.-> python/booleans("Booleans") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/DataStructuresGroup -.-> python/dictionaries("Dictionaries") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") python/PythonStandardLibraryGroup -.-> python/data_collections("Data Collections") subgraph Lab Skills python/variables_data_types -.-> lab-559510{{"Comment vérifier si les valeurs d'un dictionnaire Python sont du même type"}} python/numeric_types -.-> lab-559510{{"Comment vérifier si les valeurs d'un dictionnaire Python sont du même type"}} python/booleans -.-> lab-559510{{"Comment vérifier si les valeurs d'un dictionnaire Python sont du même type"}} python/conditional_statements -.-> lab-559510{{"Comment vérifier si les valeurs d'un dictionnaire Python sont du même type"}} python/dictionaries -.-> lab-559510{{"Comment vérifier si les valeurs d'un dictionnaire Python sont du même type"}} python/build_in_functions -.-> lab-559510{{"Comment vérifier si les valeurs d'un dictionnaire Python sont du même type"}} python/data_collections -.-> lab-559510{{"Comment vérifier si les valeurs d'un dictionnaire Python sont du même type"}} end

Explorer l'uniformité de type

Dans cette étape, vous allez apprendre à propos de l'uniformité de type en Python. L'uniformité de type fait référence au concept consistant à s'assurer que tous les éléments d'une collection, comme une liste ou un dictionnaire, sont du même type de données. Cela est important pour maintenir la cohérence et éviter les erreurs inattendues dans votre code.

Commençons par créer un script Python pour explorer ce concept.

  1. Ouvrez l'éditeur VS Code dans l'environnement LabEx.

  2. Créez un nouveau fichier nommé type_uniformity.py dans le répertoire ~/project.

    touch ~/project/type_uniformity.py
  3. Ouvrez le fichier type_uniformity.py dans l'éditeur.

Maintenant, ajoutons un peu de code au fichier type_uniformity.py pour créer une liste avec des éléments du même type.

## Create a list of integers
int_list = [1, 2, 3, 4, 5]

## Print the list
print("List of integers:", int_list)

## Verify the type of each element
for item in int_list:
    print("Type of", item, "is", type(item))

Dans ce code, nous créons une liste nommée int_list contenant uniquement des valeurs entières. Nous parcourons ensuite la liste et affichons le type de chaque élément à l'aide de la fonction type().

Ensuite, créons une liste avec des éléments de différents types.

## Create a list of mixed data types
mixed_list = [1, "hello", 3.14, True]

## Print the list
print("\nList of mixed data types:", mixed_list)

## Verify the type of each element
for item in mixed_list:
    print("Type of", item, "is", type(item))

Dans ce code, nous créons une liste nommée mixed_list contenant des entiers, des chaînes de caractères, des nombres à virgule flottante et des booléens. Nous parcourons ensuite la liste et affichons le type de chaque élément.

Maintenant, exécutons le script pour voir la sortie.

  1. Ouvrez le terminal dans l'environnement VS Code.

  2. Accédez au répertoire ~/project.

    cd ~/project
  3. Exécutez le script type_uniformity.py en utilisant la commande python.

    python type_uniformity.py

Vous devriez voir une sortie similaire à ce qui suit :

List of integers: [1, 2, 3, 4, 5]
Type of 1 is <class 'int'>
Type of 2 is <class 'int'>
Type of 3 is <class 'int'>
Type of 4 is <class 'int'>
Type of 5 is <class 'int'>

List of mixed data types: [1, 'hello', 3.14, True]
Type of 1 is <class 'int'>
Type of hello is <class 'str'>
Type of 3.14 is <class 'float'>
Type of True is <class 'bool'>

Comme vous pouvez le voir, la liste int_list contient des éléments du même type (int), tandis que la liste mixed_list contient des éléments de différents types (int, str, float, bool).

Comprendre l'uniformité de type est crucial pour écrire un code Python robuste et maintenable. Dans les étapes suivantes, vous apprendrez à utiliser la fonction all() en conjonction avec la fonction type() pour vérifier l'uniformité de type dans les collections.

Utiliser all() avec type() sur les valeurs

Dans cette étape, vous apprendrez à utiliser la fonction all() en combinaison avec la fonction type() pour vérifier si tous les éléments d'une liste ont le même type de données. Il s'agit d'une technique puissante pour garantir l'uniformité de type dans votre code Python.

La fonction all() renvoie True si tous les éléments d'un itérable sont vrais. Nous pouvons utiliser cette fonction pour vérifier si une condition est vraie pour tous les éléments d'une liste.

Continuons à travailler avec le fichier type_uniformity.py que vous avez créé à l'étape précédente.

  1. Ouvrez le fichier type_uniformity.py dans l'éditeur VS Code.

Maintenant, ajoutons un peu de code pour vérifier si tous les éléments d'une liste sont des entiers en utilisant les fonctions all() et type().

## List of integers
int_list = [1, 2, 3, 4, 5]

## Check if all elements are integers
all_integers = all(type(item) is int for item in int_list)

## Print the result
print("\nAre all elements in int_list integers?", all_integers)

Dans ce code, nous utilisons une expression génératrice (type(item) is int for item in int_list) pour créer une séquence de valeurs booléennes. Chaque valeur booléenne indique si l'élément correspondant dans int_list est un entier. La fonction all() vérifie ensuite si toutes les valeurs booléennes de la séquence sont True.

Ensuite, vérifions si tous les éléments d'une liste de types de données mixtes sont des entiers.

## List of mixed data types
mixed_list = [1, "hello", 3.14, True]

## Check if all elements are integers
all_integers = all(type(item) is int for item in mixed_list)

## Print the result
print("Are all elements in mixed_list integers?", all_integers)

Maintenant, exécutons le script pour voir la sortie.

  1. Ouvrez le terminal dans l'environnement VS Code.

  2. Accédez au répertoire ~/project.

    cd ~/project
  3. Exécutez le script type_uniformity.py en utilisant la commande python.

    python type_uniformity.py

Vous devriez voir une sortie similaire à ce qui suit :

List of integers: [1, 2, 3, 4, 5]
Type of 1 is <class 'int'>
Type of 2 is <class 'int'>
Type of 3 is <class 'int'>
Type of 4 is <class 'int'>
Type of 5 is <class 'int'>

List of mixed data types: [1, 'hello', 3.14, True]
Type of 1 is <class 'int'>
Type of hello is <class 'str'>
Type of 3.14 is <class 'float'>
Type of True is <class 'bool'>

Are all elements in int_list integers? True
Are all elements in mixed_list integers? False

Comme vous pouvez le voir, la fonction all() identifie correctement que tous les éléments de int_list sont des entiers, tandis que tous les éléments de mixed_list ne sont pas des entiers.

Cette technique peut être utilisée pour vérifier l'uniformité de type dans n'importe quelle liste, quelle que soit les types de données qu'elle contient. Dans l'étape suivante, vous apprendrez à gérer les dictionnaires vides lors de la vérification de l'uniformité de type.

Gérer les dictionnaires vides

Dans cette étape, vous apprendrez à gérer les dictionnaires vides lors de la vérification de l'uniformité de type. Un dictionnaire vide est un dictionnaire sans paires clé-valeur. Lors de la vérification de l'uniformité de type dans un dictionnaire vide, il est important de gérer ce cas de manière appropriée pour éviter les erreurs.

Continuons à travailler avec le fichier type_uniformity.py que vous avez créé dans les étapes précédentes.

  1. Ouvrez le fichier type_uniformity.py dans l'éditeur VS Code.

Maintenant, ajoutons un peu de code pour vérifier l'uniformité de type dans un dictionnaire vide.

## Empty dictionary
empty_dict = {}

## Check if the dictionary is empty
if not empty_dict:
    print("\nThe dictionary is empty.")
else:
    ## Check if all values have the same type (this will not be executed for an empty dictionary)
    first_type = type(next(iter(empty_dict.values())))
    all_same_type = all(type(value) is first_type for value in empty_dict.values())
    print("Are all values in the dictionary of the same type?", all_same_type)

Dans ce code, nous vérifions d'abord si le dictionnaire empty_dict est vide en utilisant la condition if not empty_dict:. Si le dictionnaire est vide, nous affichons un message indiquant que le dictionnaire est vide. Sinon, nous vérifions si toutes les valeurs du dictionnaire ont le même type.

Explication :

  • if not empty_dict: : Cette condition vérifie si le dictionnaire est vide. Un dictionnaire vide est évalué à False dans un contexte booléen, donc not empty_dict sera True si le dictionnaire est vide.
  • print("\nThe dictionary is empty.") : Cette ligne affiche un message indiquant que le dictionnaire est vide.
  • Le bloc else n'est pas exécuté lorsque le dictionnaire est vide.

Maintenant, ajoutons un peu de code pour vérifier l'uniformité de type dans un dictionnaire non vide.

## Dictionary with integer values
int_dict = {"a": 1, "b": 2, "c": 3}

## Check if the dictionary is empty
if not int_dict:
    print("\nThe dictionary is empty.")
else:
    ## Check if all values have the same type
    first_type = type(next(iter(int_dict.values())))
    all_same_type = all(type(value) is first_type for value in int_dict.values())
    print("Are all values in the dictionary of the same type?", all_same_type)

Dans ce code, nous créons un dictionnaire nommé int_dict avec des valeurs entières. Nous vérifions ensuite si le dictionnaire est vide. S'il n'est pas vide, nous obtenons le type de la première valeur du dictionnaire et vérifions si toutes les autres valeurs ont le même type.

Maintenant, exécutons le script pour voir la sortie.

  1. Ouvrez le terminal dans l'environnement VS Code.

  2. Accédez au répertoire ~/project.

    cd ~/project
  3. Exécutez le script type_uniformity.py en utilisant la commande python.

    python type_uniformity.py

Vous devriez voir une sortie similaire à ce qui suit :

List of integers: [1, 2, 3, 4, 5]
Type of 1 is <class 'int'>
Type of 2 is <class 'int'>
Type of 3 is <class 'int'>
Type of 4 is <class 'int'>
Type of 5 is <class 'int'>

List of mixed data types: [1, 'hello', 3.14, True]
Type of 1 is <class 'int'>
Type of hello is <class 'str'>
Type of 3.14 is <class 'float'>
Type of True is <class 'bool'>

Are all elements in int_list integers? True
Are all elements in mixed_list integers? False

The dictionary is empty.
Are all values in the dictionary of the same type? True

Comme vous pouvez le voir, le code gère correctement le dictionnaire vide et affiche le message approprié. Pour le dictionnaire non vide, il vérifie si toutes les valeurs ont le même type et affiche le résultat.

Ceci termine le laboratoire sur l'exploration de l'uniformité de type en Python. Vous avez appris à vérifier l'uniformité de type dans les listes et les dictionnaires, et à gérer les dictionnaires vides de manière appropriée.

Résumé

Dans ce laboratoire, vous avez exploré le concept d'uniformité de type en Python, qui consiste à s'assurer que tous les éléments d'une collection sont du même type de données. Vous avez créé un script Python pour démontrer ce concept en créant une liste d'entiers et une liste de types de données mixtes, puis en affichant le type de chaque élément à l'aide de la fonction type().

Le laboratoire a mis en évidence l'importance de l'uniformité de type pour maintenir la cohérence et éviter les erreurs inattendues dans le code, en montrant comment différents types de données peuvent coexister dans une même liste et comment identifier le type de chaque élément.