Heim  >  Artikel  >  Backend-Entwicklung  >  Das Python-Kochbuch (Datenstrukturen und Algorithmen) führt mehrere Zuordnungen zu einer einzigen Zuordnung zusammen

Das Python-Kochbuch (Datenstrukturen und Algorithmen) führt mehrere Zuordnungen zu einer einzigen Zuordnung zusammen

不言
不言Original
2018-04-19 13:45:381528Durchsuche

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:

Python Kochbuch (Strings und Text) Split-String-Operationen für eine beliebige Anzahl von Trennzeichen

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn