Heim > Artikel > Backend-Entwicklung > Das Python-Kochbuch (Datenstrukturen und Algorithmen) führt mehrere Zuordnungen zu einer einzigen Zuordnung zusammen
Dieser Artikel stellt hauptsächlich die Methode des Python-Kochbuchs (Datenstruktur und Algorithmus) zum Zusammenführen mehrerer Zuordnungen zu einer einzigen Zuordnung vor. Er analysiert die Implementierungsfähigkeiten im Zusammenhang mit dem Zusammenführen von Python-Wörterbuchzuordnungen in Form von Beispielen dazu
Das Beispiel in diesem Artikel beschreibt Pythons Methode, mehrere Zuordnungen zu einer einzigen Zuordnung zusammenzuführen. Geben Sie es wie folgt als Referenz für alle frei:
Frage: Führen Sie mehrere Wörterbücher oder Zuordnungen logisch zu einer einzigen Zuordnungsstruktur zusammen, um bestimmte Vorgänge auszuführen, z. B. einen Wert nachzuschlagen oder zu prüfen wenn ein Schlüssel vorhanden ist
Lösung: Verwenden Sie die collections
-Klasse im ChainMap
-Modul
ChainMap
, um mehrere Zuordnungen zu akzeptieren und sie dann logisch als anzuzeigen eine einzelne Mapping-Struktur. Diese Zuordnungen werden nicht buchstäblich miteinander verschmolzen. Stattdessen verwaltet ChainMap
einfach eine Liste, die die zugrunde liegenden Zuordnungsbeziehungen aufzeichnet, und definiert dann allgemeine Wörterbuchoperationen neu, um diese Liste zu durchsuchen.
# example.py # # Example of combining dicts into a chainmap a = {'x': 1, 'z': 3 } b = {'y': 2, 'z': 4 } # (a) Simple example of combining from collections import ChainMap c = ChainMap(a,b) #如果有重复的键,那么会采用第一个映射中所对应的值。 print(c['x']) # Outputs 1 (from a) print(c['y']) # Outputs 2 (from b) print(c['z']) # Outputs 3 (from a) # Output some common values print('len(c):', len(c)) print('c.keys():', list(c.keys())) print('c.values():', list(c.values())) # Modify some values c['z'] = 10 c['w'] = 40 print("a:", a) del c['x'] print("a:", a) # Example of stacking mappings (like scopes) values = ChainMap() values['x'] = 1 # Add a new mapping values = values.new_child() values['x'] = 2 # Add a new mapping values = values.new_child() values['x'] = 3 print(values) print(values['x']) # Discard last mapping values = values.parents print(values) print(values['x']) # Discard last mapping values = values.parents print(values) print(values['x'])
>>> ================================ RESTART ================================ >>> 1 2 3 len(c): 3 c.keys(): ['y', 'x', 'z'] c.values(): [2, 1, 3] a: {'x': 1, 'z': 10, 'w': 40} a: {'z': 10, 'w': 40} ChainMap({'x': 3}, {'x': 2}, {'x': 1}) 3 ChainMap({'x': 2}, {'x': 1}) 2 ChainMap({'x': 1}) 1 >>>
Darüber hinaus arbeitet ChainMap mit dem Originalwörterbuch, wodurch einiges vermieden werden kann Unangenehme Dinge, zum Beispiel Änderungen an einem der Originalwörterbücher, können nicht im zusammengeführten Wörterbuch widergespiegelt werden.
>>> a={'x':1,'z':3} >>> b={'y':2,'z':4} >>> merged=ChainMap(a,b) >>> merged ChainMap({'x': 1, 'z': 3}, {'y': 2, 'z': 4}) >>> merged['x'] 1 >>> a['x']=55 >>> merged['x'] 55 >>> merged ChainMap({'x': 55, 'z': 3}, {'y': 2, 'z': 4}) >>>
(Code ist Auszug aus „Python Cookbook“)
Verwandte Empfehlungen:
Das obige ist der detaillierte Inhalt vonDas Python-Kochbuch (Datenstrukturen und Algorithmen) führt mehrere Zuordnungen zu einer einzigen Zuordnung zusammen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!