Découper un dictionnaire en Python

Vaibhav Vaibhav 30 janvier 2023
  1. Découper un dictionnaire en Python à l’aide de la compréhension du dictionnaire
  2. Découper un dictionnaire en Python à l’aide de la compréhension de liste
Découper un dictionnaire en Python

Trancher consiste à obtenir une partie du tout. Dans tous les langages de programmation tels que Python, C, C++, Java, JavaScript, etc., le découpage fait référence à l’obtention d’une partie d’une chaîne ou d’une liste. Une partie contiguë d’une chaîne et d’une liste est appelée sous-chaîne et sous-tableau. Une sous-séquence est une partie non contiguë d’une chaîne ou d’une liste.

Le dictionnaire est une structure de données qui contient des paires clé-valeur. Dans un dictionnaire, une clé unique hachable pointe vers une valeur. La valeur peut être n’importe quoi ; un entier, un nombre flottant, une liste, un tuple, un ensemble, un dictionnaire, etc. Les dictionnaires sont généralement considérés comme des cartes dans d’autres langages de programmation, mais ils effectuent la même tâche.

Le découpage d’un dictionnaire consiste à obtenir un sous-ensemble de paires clé-valeur présentes dans le dictionnaire. Généralement, on filtrerait les valeurs d’un dictionnaire en utilisant une liste de clés requises. Dans cet article, nous allons apprendre à découper un dictionnaire en utilisant Python à l’aide de quelques exemples pertinents.

Découper un dictionnaire en Python à l’aide de la compréhension du dictionnaire

Étant donné un dictionnaire non vide avec des paires clé-valeur et une liste de clés requises, nous pouvons filtrer les paires clé-valeur requises en parcourant le dictionnaire et en créant un nouveau dictionnaire. Lors de l’itération, nous devons nous assurer que les clés à l’intérieur de la liste sont valides et peuvent être trouvées dans le dictionnaire. Sinon, le programme lancera des exceptions gênantes. Reportez-vous au code Python suivant pour l’approche décrite.

import json

a = {
    "C": 1.1,
    "O": True,
    "M": "HelloWorld",
    "P": {"X": 1, "Y": 2, "Z": 3},
    "U": 25,
    "T": None,
    "E": ["Python", "Is", "Beautiful"],
    "R": [1, 2, 100, 200],
}
targets = ["C", "P", "U"]
result = {key: a[key] for key in a.keys() if key in targets}
print(json.dumps(result, indent=4))

Production :

{
    "C": 1.1,
    "P": {
        "X": 1,
        "Y": 2,
        "Z": 3
    },
    "U": 25
}

La variable a contient le dictionnaire et la variable targets est une liste de toutes les clés requises. Pour créer un nouveau dictionnaire, nous parcourons toutes les clés du dictionnaire et vérifions si elles existent dans la variable targets. Si c’est le cas, nous l’ajoutons à notre nouveau dictionnaire. Sinon, on s’en passe. Cette seule ligne de code effectue toute cette création, ce filtrage et cette vérification.

result = {key: a[key] for key in a.keys() if key in targets}

Il s’agit d’une syntaxe en ligne ou d’une compréhension de dictionnaire pour itérer sur un objet itérable et associer des instructions if et else pour ajouter plus de logique et créer un nouvel objet. Cette déclaration peut sembler un peu complexe, mais au contraire, elle est vraiment simple et met en valeur la beauté et la puissance du langage de programmation Python.

Un code Python équivalent plus simple et plus basique du code Python ci-dessus est le suivant.

import json

a = {
    "C": 1.1,
    "O": True,
    "M": "HelloWorld",
    "P": {"X": 1, "Y": 2, "Z": 3},
    "U": 25,
    "T": None,
    "E": ["Python", "Is", "Beautiful"],
    "R": [1, 2, 100, 200],
}
targets = ["C", "P", "U"]
result = {}

for key in a.keys():
    if key in targets:
        result[key] = a[key]

print(json.dumps(result, indent=4))

Production :

{
    "C": 1.1,
    "P": {
        "X": 1,
        "Y": 2,
        "Z": 3
    },
    "U": 25
}

Découper un dictionnaire en Python à l’aide de la compréhension de liste

Les paires clé-valeur stockées dans un dictionnaire peuvent être obtenues sous la forme d’une liste de listes. Étant donné une liste de cibles, nous pouvons parcourir cette liste de listes et filtrer la clé qui n’existe pas dans la liste de cibles. De plus, nous pouvons créer un nouveau dictionnaire en utilisant la liste filtrée des listes. Reportez-vous au code Python suivant pour l’approche ci-dessus.

import json

a = {
    "C": 1.1,
    "O": True,
    "M": "HelloWorld",
    "P": {"X": 1, "Y": 2, "Z": 3},
    "U": 25,
    "T": None,
    "E": ["Python", "Is", "Beautiful"],
    "R": [1, 2, 100, 200],
}
targets = ["C", "P", "U"]
result = {}
pairs = a.items()

for (key, value) in pairs:
    if key in targets:
        result[key] = value

print(json.dumps(result, indent=4))

Production :

{
    "C": 1.1,
    "P": {
        "X": 1,
        "Y": 2,
        "Z": 3
    },
    "U": 25
}

La méthode items() renvoie un objet itérable qui contient des paires clé-valeur à l’intérieur d’une liste. Pour le dictionnaire ci-dessus, la variable pairs se présente comme suit.

dict_items(
    [
        ("C", 1.1),
        ("O", True),
        ("M", "HelloWorld"),
        ("P", {"X": 1, "Y": 2, "Z": 3}),
        ("U", 25),
        ("T", None),
        ("E", ["Python", "Is", "Beautiful"]),
        ("R", [1, 2, 100, 200]),
    ]
)

Avec une boucle for, les valeurs à l’intérieur de la variable pairs sont décompressées et filtrées à l’aide d’une instruction if. Les valeurs filtrées sont alors ajoutées au nouveau dictionnaire result.

Tous les exemples discutés ci-dessus utilisent le module json pour imprimer magnifiquement la sortie du dictionnaire. Notez que le module json n’a rien à voir avec la logique réelle de découpage d’un dictionnaire, et il est entièrement facultatif d’utiliser ce module.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Article connexe - Python Dictionary