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

不言
Freigeben: 2018-04-19 13:45:38
Original
1513 Leute haben es durchsucht

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'])
Nach dem Login kopieren

>>> ================================ 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
>>>
Nach dem Login kopieren

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})
>>>
Nach dem Login kopieren

(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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!