นิยาม

method นี้จะลบข้อมูลที่เหมือนกันในทั้งสอง set ออก และเติมข้อมูลที่ไม่มีใน set เดิมแต่ปรากฏใน set อื่นเพิ่มเข้าไปแทนที่ เป็นการ modify original set อย่างหนึ่ง

Syntax

set1.symmetric_difference_update(set2)

method นี้รับได้แค่ argument เดียวเท่านั้น หากใส่มากกว่า 1 argument จะได้ TypeError

ตัวอย่าง

set1 = {'pomelo', 'pumpkin', 'pie', 'pudding'}
set2 = {'pudding', 'pomelo', 'cranberry', 'apple'}

set1.symmetric_difference_update(set2)
print(set1)
set2.symmetric_difference_update(set1)
print(set2)

output:
{'pie', 'cranberry', 'pumpkin', 'apple'} 
{'pie', 'pomelo', 'pumpkin', 'pudding'}

จากตัวอย่าง การใช้ method ในครั้งแรก เราเปรียบเทียบข้อมูลสองชุด

{'pomelo', 'pumpkin', 'pie', 'pudding'}
{'pudding', 'pomelo', 'cranberry', 'apple'}

ข้อมูลที่เหมือนกันคือ pomelo และ pudding ดังนั้นเราจะลบข้อมูลสองตัวนี้ออกในทั้งสอง set เหลือเป็น

{'pumpkin', 'pie'}
{'cranberry', 'apple'}

จากนั้นเอาข้อมูลทั้งสองมารวมกัน และอัพเดทให้เป็น set1

{'pumpkin', 'pie', 'cranberry', 'apple'}

กลายเป็นว่า set1 ถูกแก้ไขให้มีข้อมูลดังตัวอย่างด้านบนนี้

ต่อมาเราจะใช้ method นี้อีกครั้ง แต่ครั้งนี้เราต้องการ modify หรือ แก้ไขข้อมูลใน set2 นำข้อมูลของทั้งสอง set ออกมา

{'pumpkin', 'pie', 'cranberry', 'apple'}
{'pudding', 'pomelo', 'cranberry', 'apple'}

สังเกตุว่าข้อมูลใน set1 ที่นำมาใช้ เป็นข้อมูลที่ได้รับการแก้ไขแล้ว

ข้อมูลที่เหมือนกันคือ cranberry และ apple ดังนั้นเราจะลบข้อมูลนี้ของทั้งสอง set ออก เหลือเป็น

{'pumpkin', 'pie'}
{'pudding', 'pomelo'}

จากนั้นรวมข้อมูลทั้งหมดเข้าด้วยกัน และอัพเดทให้เป็น set2

{'pumpkin', 'pie', 'pudding', 'pomelo'}

method นี้คล้ายกับ symmetric_difference() method สิ่งที่ต่างกันคือ symmetric_difference จะสามารถสร้าง set ใหม่ที่รวมข้อมูลที่ต่างกันไว้ใน set ใหม่ได้ ในขณะที่ symmetric_difference_update() เป็นการอัพเดท set หรือ modify set เดิมให้มีข้อมูลที่ต่างกันระหว่างสอง set ที่นำมาเปรียบเทียบเท่านั้น