Mapa de cadenas en Python
Python contiene un contenedor llamado ' Mapa de cadena ' que encapsula muchos diccionarios en una sola unidad. ChainMap es miembro del módulo ' colecciones '. Ejemplo: Python3
# Python program to demonstrate # ChainMap from collections import ChainMap d1 = { 'a' : 1 'b' : 2 } d2 = { 'c' : 3 'd' : 4 } d3 = { 'e' : 5 'f' : 6 } # Defining the chainmap c = ChainMap ( d1 d2 d3 ) print ( c )
Producción: ChainMap({'a': 1 'b': 2} {'c': 3 'd': 4} {'e': 5 'f': 6}) Veamos varias operaciones en ChainMap. Operaciones de acceso
# Please select Python 3 for running this code in IDE # Python code to demonstrate ChainMap and # keys() values() and maps # importing collections for ChainMap operations import collections # initializing dictionaries dic1 = { 'a' : 1 'b' : 2 } dic2 = { 'b' : 3 'c' : 4 } # initializing ChainMap chain = collections . ChainMap ( dic1 dic2 ) # printing chainMap using maps print ( 'All the ChainMap contents are : ' ) print ( chain . maps ) # printing keys using keys() print ( 'All keys of ChainMap are : ' ) print ( list ( chain . keys ())) # printing keys using keys() print ( 'All values of ChainMap are : ' ) print ( list ( chain . values ()))
Producción : All the ChainMap contents are : [{'b': 2 'a': 1} {'c': 4 'b': 3}] All keys of ChainMap are : ['a' 'c' 'b'] All values of ChainMap are : [1 4 2] Nota : Observe que la clave denominada 'b' existe en ambos diccionarios, pero solo la primera clave del diccionario se toma como valor clave de 'b'. El pedido se realiza a medida que los diccionarios pasan en función. Operaciones de manipulación
# Please select Python 3 for running this code in IDE # Python code to demonstrate ChainMap and # reversed() and new_child() # importing collections for ChainMap operations import collections # initializing dictionaries dic1 = { 'a' : 1 'b' : 2 } dic2 = { 'b' : 3 'c' : 4 } dic3 = { 'f' : 5 } # initializing ChainMap chain = collections . ChainMap ( dic1 dic2 ) # printing chainMap using map print ( 'All the ChainMap contents are : ' ) print ( chain . maps ) # using new_child() to add new dictionary chain1 = chain . new_child ( dic3 ) # printing chainMap using map print ( 'Displaying new ChainMap : ' ) print ( chain1 . maps ) # displaying value associated with b before reversing print ( 'Value associated with b before reversing is : ' end = '' ) print ( chain1 [ 'b' ]) # reversing the ChainMap chain1 . maps = reversed ( chain1 . maps ) # displaying value associated with b after reversing print ( 'Value associated with b after reversing is : ' end = '' ) print ( chain1 [ 'b' ])
Producción : All the ChainMap contents are : [{'b': 2 'a': 1} {'b': 3 'c': 4}] Displaying new ChainMap : [{'f': 5} {'b': 2 'a': 1} {'b': 3 'c': 4}] Value associated with b before reversing is : 2 Value associated with b after reversing is : 3