Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ChainMap ใน Python


ChainMap ใช้เพื่อสรุปพจนานุกรมเป็นหน่วยเดียว

ChainMapis เป็นคลาสไลบรารีมาตรฐาน ซึ่งอยู่ใน collections โมดูล

หากต้องการใช้งานในตอนแรก เราต้องนำเข้าโมดูลไลบรารีมาตรฐานของคอลเลกชัน

import collections

ในส่วนนี้ เราจะเห็นฟังก์ชันบางอย่างของคลาส ChainMap

ฟังก์ชันแผนที่และคีย์ () ค่า ()

แผนที่ใช้เพื่อแสดงคู่ค่าคีย์ทั้งหมดของพจนานุกรมทั้งหมดจาก ChainMap วิธี keys() จะคืนค่าคีย์จาก ChainMap และวิธี values() จะคืนค่าทั้งหมด () ของคีย์ที่ต่างกันจาก ChainMap

โค้ดตัวอย่าง

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('The keys in the ChainMap: ' + str(list(chain.keys())))
print('The values in the ChainMap: ' + str(list(chain.values())))

ผลลัพธ์

Initial Chain: [{'India': 'IN', 'China': 'CN'}, {'France': 'FR', 'United Kingdom': 'GB'}]
The keys in the ChainMap: ['China', 'United Kingdom', 'India', 'France']
The values in the ChainMap: ['CN', 'GB', 'IN', 'FR']

New_child() และวิธีย้อนกลับ

เมธอด new_child() ใช้สำหรับเพิ่มอ็อบเจ็กต์พจนานุกรมอื่นไปยัง ChainMap ในตอนเริ่มต้น และยังสามารถใช้วิธีการย้อนกลับกับ ChainMap เพื่อย้อนกลับลำดับของคู่คีย์-ค่าได้อีกด้วย

โค้ดตัวอย่าง

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))

ผลลัพธ์

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'})