English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

ChainMap in Python

ChainMap viene utilizzato per avvolgere dizionari in un singolo elemento.

ChainMap è una classe standard della libreria, situata incollectionsmodulo.

Per usarlo, dobbiamo importare il modulo standard delle collezioni.

import collections

In questa sezione, vedremo alcune funzionalità della classe ChainMap

mappa concatenata ekeys() values()metodo

La mappa concatenata viene utilizzata per visualizzare tutte le coppie di chiavi e valori di tutti i dizionari nella ChainMap. Ilkeys()Il metodo restituirà le chiavi dalla ChainMap, mentre questo metodovalues()ritorna tuttivalues()chiavi diverse.

Esempio di codice

import collections as col
con_code1 = {'India' : 'IN', 'China' : 'CN'}
con_code2 = {'France' : 'FR', 'United Kingdom' : 'GB'}
chain = col.ChainMap(con_code1, con_code2)
print("Initial Chain: " + str(chain.maps))
print('Le chiavi nella ChainMap: ' + str(list(chain.keys())))
print('I valori nella ChainMap: ' + str(list(chain.values())))

Risultato di output

Initial Chain: [{'India': 'IN', 'China': 'CN'}, {'France': 'FR', 'United Kingdom': 'GB'}]
Le chiavi nella ChainMap: ['Cina', 'Regno Unito', 'India', 'Francia']
I valori nella ChainMap: ['CN', 'GB', 'IN', 'FR']

new_child() e metodo inverso

Il metodo new_child() viene utilizzato per aggiungere un altro oggetto dizionario all'interno di ChainMap all'inizio. Il metodo inverso può anche essere utilizzato per ChainMap per invertire l'ordine delle coppie di chiave-valore.

Esempio di codice

import collections as col
con_code1 = {'India' : 'IN', 'China' : 'CN'}
con_code2 = {'France' : 'FR', 'United Kingdom' : 'GB'}
code = {'Japan' : 'JP'}
chain = col.ChainMap(con_code1, con_code2)
print("Initial Chain: " + str(chain.maps))
chain = chain.new_child(code) # Insert New Child
print("Chain after Inserting new Child: " + str(chain.maps))
chain.maps = reversed(chain.maps)
print("Reversed Chain: " + str(chain))

Risultato di output

Initial Chain: [{'India': 'IN', 'China': 'CN'}, {'France': 'FR', 'United Kingdom': 'GB'}]
Chain after Inserting new Child: [{'Japan': 'JP'}, {'India': 'IN', 'China': 'CN'}, {'France': 'FR', 'United Kingdom': 'GB'}]
Reversed Chain: ChainMap({'France': 'FR', 'United Kingdom': 'GB'}, {'India': 'IN', 'China': 'CN'}, {'Japan': 'JP'})