Découper un dictionnaire en Python
- Découper un dictionnaire en Python à l’aide de la compréhension du dictionnaire
- Découper un dictionnaire en Python à l’aide de la compréhension de liste
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.
Article connexe - Python Dictionary
- Comment vérifier si une clé existe dans un dictionnaire en Python
- Convertir un dictionnaire en liste en Python
- Comment obtenir tous les fichiers d'un répertoire
- Comment trouver la valeur maximale dans le dictionnaire Python
- Comment trier un dictionnaire Python par valeur
- Comment fusionner deux dictionnaires en Python 2 et 3