นิยาม
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 ที่นำมาเปรียบเทียบเท่านั้น