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

การหาความแตกต่างของ Keys ระหว่างสอง Dictionary ใน Python (Symmetric Difference)

ใช้ Set (เซต) ซึ่งเป็นคอลเลกชัน unique, unordered, immutable รองรับ set operations ตามทฤษฎีเซต

Symmetric Difference (ความแตกต่างแบบสมมาตร)

คืนสมาชิกที่อยู่ใน เซตใดเซตหนึ่ง แต่ไม่ใช่ทั้งสอง (XOR) ใช้ตัวดำเนินการ ^

ตัวอย่าง

>> D1 = {1: 100, 2: 200, 3: 300}
>>> D2 = {1: 1000, 3: 300, 5: 500}
>>> set(D1.keys()) ^ set(D2.keys())
{2, 5}

คำอธิบาย

  • Keys ของ D1: {1, 2, 3}
  • Keys ของ D2: {1, 3, 5}
  • Symmetric difference: {2, 5} (อยู่ใน D1 หรือ D2 แต่ไม่ใช่ทั้งคู่)

Set Operations อื่นๆ ที่มีประโยชน์

.union().intersection().difference().symmetric_difference()
OperationOperatorMethodความหมาย
Union|รวมทั้งสอง (OR)
Intersection&เฉพาะที่มีในทั้งสอง (AND)
Difference-อยู่ในซ้ายแต่ไม่อยู่ขวา
Symmetric Diff^อยู่ในข้างใดข้างหนึ่งไม่ใช่ทั้งสอง (XOR)

ตัวอย่างเพิ่มเติม

>> # Keys ที่มีใน D1 แต่ไม่มีใน D2
>>> set(D1.keys()) - set(D2.keys())
{2}

>>> # Keys ที่มีในทั้งสอง
>>> set(D1.keys()) & set(D2.keys())
{1, 3}