Schnittpunkt des Python-Wörterbuchs

Migel Hewage Nimesha 15 Februar 2024
  1. Python-Wörterbuch
  2. Verwenden Sie Wörterbuchverständnis, um zwei Wörterbücher in Python zu überschneiden
  3. Verwenden Sie den bitweisen &-Operator, um zwei Wörterbücher in Python zu überschneiden
  4. Verwenden Sie die Methode Set intersection(), um zwei Wörterbücher in Python zu schneiden
  5. Methoden, die beim Überschneiden mehrerer Wörterbücher in Python verwendet werden
  6. Abschluss
Schnittpunkt des Python-Wörterbuchs

In diesem Artikel werden die verschiedenen Methoden zum Durchführen von Schnittmengen für zwei oder mehrere Wörterbücher in Python erörtert.

Python-Wörterbuch

Die Daten werden in einem Schlüssel-Wert-Paar-Format unter Verwendung eines Python-Wörterbuchs gespeichert, und es handelt sich um eine veränderliche Datenstruktur. Der Dictionary-Datentyp von Python kann reale Datenanordnungen nachahmen, bei denen ein bestimmter Wert für einen bestimmten Schlüssel vorhanden ist.

Schlüssel und Werte sind die Elemente, die zum Definieren des Wörterbuchs verwendet werden:

  • Schlüssel sollten ein einzelnes Element sein.
  • Der Wert kann ein beliebiger Typ sein, z. B. eine Liste, eine ganze Zahl, ein Tupel usw.

Ein Wörterbuch ist mit anderen Worten eine Gruppe von Schlüssel-Wert-Paaren, wobei der Wert ein beliebiges Python-Objekt sein kann. Die Schlüssel hingegen sind unveränderliche Python-Objekte wie Strings, Tupel oder Zahlen.

Mehrere Schlüssel-Wert-Paare können verwendet werden, um ein Wörterbuch zu erstellen, wobei ein Doppelpunkt jeden Schlüssel von seinem Wert trennt, bevor jedes Paar in geschweiften Klammern steht.

Die Syntax ist wie folgt:

dict = {"Name": "John", "Age": 18, "Grade": "13"}

Schauen wir uns ein Beispiel an:

Beispiel für ein Python-Wörterbuch

Verwenden Sie Wörterbuchverständnis, um zwei Wörterbücher in Python zu überschneiden

Wir können verschiedene Ansätze verwenden, um die Schnittmenge von Wörterbüchern über ihre Schlüssel in Python durchzuführen.

  • Initialisieren Sie zunächst die ursprünglichen Wörterbücher in dict01 und dict02.
  • Drucken Sie die Originalwörterbücher.
  • Betrachten Sie als nächstes den Schlüssel von dict01 als k1 und führen Sie die for-Schleife aus, um zu prüfen, ob das k1 in dict01 in dict02 existiert. Wenn es den gemeinsamen Schlüssel hat, wird sein Wert in ein neues Wörterbuch namens intersection geschoben (das Wörterbuch kann je nach Anforderung bevorzugt werden).
  • Drucken Sie das neue Wörterbuch intersection mit den gemeinsamen Schlüsseln und ihren Werten.

Beispiel:

# inititializing the dictionaries
dict01 = {"A": 1, "B": 6, "C": 3, "D": 5}
dict02 = {"A": 1, "C": 4, "D": 5, "E": 2}

# printing original dictionary
print("First original dictionary: ", dict01)
print("Second original dictionary: ", dict02)

# performing intersection
intersection = {k1: dict01[k1] for k1 in dict01 if k1 in dict02}

# printing output
print("Intersected Dictionary: ", str(intersection))

Sie erhalten die unten aufgeführte Ausgabe, wenn Sie den obigen Code ausführen.

Python-Wörterbuchschnittpunkt mit Wörterbuchverständnis 1

Betrachten Sie den Schlüssel von dict02 als k2. Führen Sie die for-Schleife aus, um zu prüfen, ob k2 in dict02 auch in dict01 existiert, indem Sie denselben Code befolgen.

Zusätzlich, wenn die Werte vom Typ String sind:

# inititializing the dictionaries
dict01 = {1: "My", 2: "I", 3: "age"}
dict02 = {1: "name", 2: "live", 4: "year"}

# defining a function to merge strings


def mergeStrings(str01, str02):
    return str01 + " " + str02


# performing intersection
intersectString = {
    k1: mergeStrings(dict01[k1], dict02[k1]) for k1 in dict01.keys() if k1 in dict02
}

# printing output
print(intersectString)

Schauen wir uns das Ergebnis des obigen Codes an:

Python Dictionary Intersection Using Dictionary Comprehension 2

Verwenden Sie den bitweisen &-Operator, um zwei Wörterbücher in Python zu überschneiden

Es filtert einfach die gemeinsamen Schlüssel und den entsprechenden Wert des Schlüssels aus den Wörterbüchern. Es filtert nur Schlüssel mit demselben Wert, und dieser Ansatz ist viel einfacher zu verstehen und anzuwenden.

  • Stellen Sie zunächst dict01 und dict02 zunächst mit den Originalwörterbüchern ein.
  • Drucken Sie als Nächstes die Originalwörterbücher aus.
  • Als nächstes konvertieren Sie die Wörterbücher dict01 und dict02 mit der Funktion items() in das Listenformat.
  • Führen Sie dann das UND mit dem Operator & aus. Die gemeinsamen Key-Value-Paare werden dann mit der Funktion dict() in ein Dictionary umgewandelt und im neuen Dictionary intersection gespeichert.
  • Drucken Sie abschließend das neue Wörterbuch.

Beispiel:

# inititializing dictionary
dict01 = {"A": 1, "B": 6, "C": 3, "D": 5}
dict02 = {"A": 1, "C": 4, "D": 5, "E": 2}

# printing original dictionary
print("First original dictionary: ", dict01)
print("Second original dictionary: ", dict02)

# performing intersection
intersection = dict(dict01.items() & dict02.items())

# printing output
print("Intersected Dictionary", str(intersection))

Sie erhalten das folgende Ergebnis, wenn Sie den obigen Code ausführen.

Python-Wörterbuchschnittpunkt mit Bitwise & Operator

Beim Durchführen des bitweisen &-Operators für die Schnittmenge des Python-Wörterbuchs sollten sowohl die Schlüssel als auch die Werte der jeweiligen Schlüssel gleich sein.

Verwenden Sie die Methode Set intersection(), um zwei Wörterbücher in Python zu schneiden

Die Methode set intersection() gibt eine Menge zurück, die sich wie folgt aus den Elementen zusammensetzt, die in beiden Mengen m und n vorhanden sind:

m = {"A": 1, "B": 6, "C": 3, "D": 5}
n = {"A": 1, "D": 5, "E": 2}

setM = set(m)
setN = set(n)

setM.intersection(setN)

for item in setM.intersection(setN):
    print(item)

Wenn Sie den obigen Beispielcode ausführen, erhalten Sie die folgenden Ergebnisse.

Python-Wörterbuch Schnittpunkt Verwendung von Schnittpunkt ()

Methoden, die beim Überschneiden mehrerer Wörterbücher in Python verwendet werden

Wir können sowohl den bitweisen &-Operator als auch die Set intersection()-Methode verwenden, um die Elemente, die sich in mehreren Wörterbüchern mit weiterer Codierung überschneiden, einfach zu finden.

Verwendung des bitweisen &-Operators:

# inititializing dictionary
dict01 = {"A": 1, "B": 6, "C": 3, "D": 5}
dict02 = {"A": 1, "C": 4, "D": 5, "E": 2}
dict03 = {"A": 1, "C": 9, "D": 5, "E": 1}

# printing original dictionary
print("First original dictionary: ", dict01)
print("Second original dictionary: ", dict02)
print("Third original dictionary: ", dict03)

# performing intersection
intersection = dict(dict01.items() & dict02.items() & dict03.items())

# printing output
print("Intersected Dictionary", str(intersection))

Schauen wir uns das Ergebnis nach der Ausführung des obigen Codes an:

Python Mehrere Wörterbücher Schnittpunkt mit &

Verwendung der Methode Set intersection():

m = {"A": 1, "B": 6, "D": 5, "E": 2}
n = {"A": 1, "D": 5, "E": 2}
t = {"A": 1, "C": 4, "D": 5, "E": 2}

setM = set(m)
setN = set(n)
setT = set(t)

setM.intersection(setN).intersection(setT)

for item in setM.intersection(setN).intersection(setT):
    print(item)

Schauen wir uns das Ergebnis nach der Ausführung des obigen Codes an:

Python Mehrere Wörterbücher Schnittpunkt Verwenden von Schnittpunkt ()

Abschluss

Zum Abschluss haben wir über schnelle und effiziente Möglichkeiten nachgedacht, um zwei oder mehrere Wörterbücher in Python zu überschneiden, um ein neues zu erstellen. Sie können jeden Ansatz auswählen, den Sie je nach Ihren Vorlieben und Ihrem Anwendungsfall benötigen.

Wir haben die Schnittmenge von zwei oder mehr Wörterbüchern gefunden, die alle nur auf der Ebene von Schlüsseln und Schlüssel-Wert-Paaren liegen und manchmal unterschiedliche Funktionen für die gemeinsamen Schlüssel verwenden. Diese Methoden sind sicherlich nicht die einzigen; Sie können sich mehr vorstellen, und vielleicht werden in späteren Versionen von Python explizitere Methoden für diese Aufgaben hinzugefügt.

Obwohl fast alle vorgeschlagenen Code-Bits Einzeiler sind, sind sie alle klar und elegant.

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.

Verwandter Artikel - Python Dictionary