Slice ein Dictionary in Python

Vaibhav Vaibhav 14 April 2022
  1. Unterteilen ein Dictionary in Python mit Dictionary Comprehension
  2. Aufteilen eine Dictionary in Python mit List Comprehension
Slice ein Dictionary in Python

Slicing bezieht sich darauf, einen Teil des Ganzen zu erhalten. In allen Programmiersprachen wie Python, C, C++, Java, JavaScript usw. bezieht sich Slicing auf das Erhalten eines Teils einer Zeichenfolge oder einer Liste. Ein zusammenhängender Teil eines Strings und einer Liste wird als Substring und Subarray bezeichnet. Eine Teilsequenz ist ein nicht zusammenhängender Teil einer Zeichenfolge oder einer Liste.

Dictionary ist eine Datenstruktur, die Schlüssel-Wert-Paare enthält. In einem Dictionary zeigt ein Hash-fähiger eindeutiger Schlüssel auf einen Wert. Der Wert kann beliebig sein; B. eine Ganzzahl, eine Gleitkommazahl, eine Liste, ein Tupel, eine Menge, ein Dictionary usw. Wörterbücher werden in anderen Programmiersprachen im Allgemeinen als Karten betrachtet, aber sie erfüllen die gleiche Aufgabe.

Das Aufteilen eines Dictionary bezieht sich auf das Abrufen einer Teilmenge von Schlüssel-Wert-Paaren, die im Dictionary vorhanden sind. Im Allgemeinen würde man Werte aus einem Dictionary herausfiltern, indem man eine Liste erforderlicher Schlüssel verwendet. In diesem Artikel lernen wir anhand einiger relevanter Beispiele, wie man ein Dictionary mit Python aufteilt.

Unterteilen ein Dictionary in Python mit Dictionary Comprehension

Bei einem nicht leeren Dictionary mit Schlüssel-Wert-Paaren und einer Liste erforderlicher Schlüssel können wir die erforderlichen Schlüssel-Wert-Paare herausfiltern, indem wir das Dictionary durchlaufen und ein neues Dictionary erstellen. Beim Iterieren müssen wir sicherstellen, dass die Schlüssel in der Liste gültig sind und im Dictionary gefunden werden können. Andernfalls wird das Programm lästige Ausnahmen auslösen. Sehen Sie sich den folgenden Python-Code für den besprochenen Ansatz an.

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))

Ausgabe:

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

Die Variable a enthält das Dictionary, und die Variable targets ist eine Liste aller erforderlichen Schlüssel. Um ein neues Dictionary zu erstellen, iterieren wir über alle Schlüssel des Dictionary und prüfen, ob es in den targets vorhanden ist. Wenn ja, fügen wir es unserem neuen Dictionary hinzu. Ansonsten überspringen wir es. Diese einzelne Codezeile führt all diese Erstellung, Filterung und Überprüfung durch.

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

Dies ist eine Inline-Syntax oder ein Lexikonverständnis zum Iterieren über ein iterierbares Objekt und das Clubbing von if- und else-Anweisungen, um mehr Logik hinzuzufügen und ein neues Objekt zu erstellen. Diese Aussage mag etwas komplex erscheinen, ist aber im Gegenteil wirklich einfach und zeigt die Schönheit und Leistungsfähigkeit der Programmiersprache Python.

Ein einfacherer und grundlegenderer äquivalenter Python-Code des obigen Python-Codes lautet wie folgt.

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))

Ausgabe:

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

Aufteilen eine Dictionary in Python mit List Comprehension

Die in einem Dictionary gespeicherten Schlüssel-Wert-Paare können in Form einer Liste von Listen abgerufen werden. Bei einer gegebenen Liste von Zielen können wir diese Liste von Listen durchlaufen und den Schlüssel herausfiltern, der nicht in der Zielliste vorhanden ist. Darüber hinaus können wir mithilfe der gefilterten Liste von Listen ein neues Dictionary erstellen. Siehe den folgenden Python-Code für den obigen Ansatz.

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))

Ausgabe:

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

Die Methode items() gibt ein iterierbares Objekt zurück, das Schlüssel-Wert-Paare in einer Liste enthält. Für das obige Dictionary sieht die Variable pairs wie folgt aus.

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]),
    ]
)

Bei einer for-Schleife werden die Werte innerhalb der pairs-Variablen entpackt und mit Hilfe einer if-Anweisung gefiltert. Die gefilterten Werte werden dann dem neuen Dictionary Ergebnis hinzugefügt.

Alle oben besprochenen Beispiele verwenden das json-Modul, um die Ausgabe des Dictionary schön zu drucken. Beachten Sie, dass das json-Modul nichts mit der eigentlichen Logik zum Aufteilen eines Dictionary zu tun hat und dass die Verwendung dieses Moduls völlig optional ist.

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.

Verwandter Artikel - Python Dictionary