Python การจอย Join ข้อมูลใน Set

Python การจอย Join ข้อมูลใน Set

Python การจอย Join ข้อมูลใน Set

ถ้ามีข้อมูลประเภท Set ตั้งแต่ 2 ชุดขึ้นไป เราสามารถนำ Set เหล่านั้นมารวมกันได้หลายวิธีด้วยกัน

การจอย Set ด้วยเมธอด union() หรือเมธอด update()

เราสามารถจอยหรือรวม Set ตั้งแต่ 2 ชุดขึ้นไปเข้าด้วยกัน ด้วยเมธอด union() ซึ่งจะได้ Set ใหม่ที่รวมเอาสมาชิกของ Set ทั้งหมดเข้าด้วยกัน

apple = {"iPhone", "iPad", "iPod", "Mac OS"}

android = {"Vivo", "Oppo", "Wiko"}

phone = apple.union(android)

print(phone)

# {'iPod', 'Vivo', 'Wiko', 'Mac OS', 'Oppo', 'iPhone', 'iPad'}

ถ้าจอย 2 Set ขึ้นไป ให้ใช้เครื่องหมายคอมม่า ( , ) คั่น

apple = {"iPhone", "iPad", "iPod", "Mac OS"}

windows = {"Windows 11", "Windows 10"}

android = {"Vivo", "Oppo", "Wiko"}

items = apple.union(android, windows)

print(items)

# {'iPod', 'iPhone', 'Oppo', 'Windows 11', 'Mac OS', 'Wiko', 'Vivo', 'iPad', 'Windows 10'}

หรือจะใช้เมธอด update() ก็ได้ ซึ่งจะเป็นการนำสมาชิกจาก Set ชุดหนึ่งเข้าไปรวมไว้กัน Set อีกชุด

item1 = {"iPhone", "iPad", "iPod", "Mac OS"}

item2 = {"Vivo", "Oppo", "Wiko"}

item1.update(item2)

print(item1)

# {'Vivo', 'Wiko', 'iPod', 'iPad', 'Mac OS', 'iPhone', 'Oppo'}

ถ้าจอย 2 Set ขึ้นไป ให้ใช้เครื่องหมายคอมม่า ( , ) คั่น

item1 = {"iPhone", "iPad", "iPod", "Mac OS"}

item2 = {"Vivo", "Oppo", "Wiko"}

item3 = {"Windows 10", "Windows 11"}

item1.update(item2, item3)

print(item1)

# {'Oppo', 'iPad', 'iPod', 'Windows 11', 'Windows 10', 'Wiko', 'Mac OS', 'iPhone', 'Vivo'}

ถ้ามีข้อมูลที่ซ้ำกัน ทั้งเมธอด union() และ update() จะนำข้อมูลที่ซ้ำกันออกให้เหลือแค่อันเดียว

item1 = {"iPhone", "iPad", "iPod", "iPod", "Mac OS"}

item2 = {"Vivo", "Oppo", "Wiko", "Wiko"}

item1.update(item2)

print(item1)

# {'iPad', 'Vivo', 'Wiko', 'iPod', 'Mac OS', 'Oppo', 'iPhone'}

การจอยเฉพาะข้อมูลที่เหมือนกัน

ถ้าต้องการจอย Set ตั้งแต่ 2 ชุดขึ้นไป โดยให้คัดเอาเฉพาะข้อมูลที่มีอยู่ในทุก Set สามารถทำได้โดยใช้เมธอด intersection_update()

item1 = {"iPhone", "iPad", "iPod", "iPod", "Mac OS"}

item2 = {"iPad", "Oppo", "Wiko", "iPhone"}

item1.intersection_update(item2)

print(item1)

# {'iPhone', 'iPad'}
item1 = {"iPhone", "iPad", "iPod", "iPod", "Mac OS"}

item2 = {"iPad", "Oppo", "Wiko", "iPhone"}

item3 = {"Oppo", "Wiko", "iPhone"}

item1.intersection_update(item2, item3)

print(item1)

# {'iPhone'}

หรือจะใช้เมธอด intersection() ก็ได้ โดยจะได้ผลลัพธ์เป็น Set ใหม่ที่เก็บเฉพาะข้อมูลที่เหมือนกันในทุก Set

item1 = {"iPhone", "iPad", "iPod", "iPod", "Mac OS"}

item2 = {"iPad", "Oppo", "Wiko", "iPhone"}

myitems = item1.intersection(item2)

print(myitems)

# {'iPhone', 'iPad'}
item1 = {"iPhone", "iPad", "iPod", "iPod", "Mac OS"}

item2 = {"iPad", "Oppo", "Wiko", "iPhone"}

item3 = {"Oppo", "Wiko", "iPhone"}

myitems = item1.intersection(item2, item3)

print(myitems)

# {'iPhone'}

การจอยเฉพาะข้อมูลที่ไม่เหมือนกัน

ถ้าต้องการเฉพาะข้อมูลที่ไม่เหมือนกันในทุก Set สามารถทำได้โดยใช้เมธอด symmetric_difference_update() โดยจะได้ผลลัพธ์เป็นข้อมูลที่ไม่ซ้ำกันในทุก Set

item1 = {"iPhone", "iPad", "iPod", "iPod", "Mac OS"}

item2 = {"iPad", "Oppo", "Wiko", "iPhone"}

item1.symmetric_difference_update(item2)

print(item1)

# {'Wiko', 'Mac OS', 'Oppo', 'iPod'}

หรือจะใช้เมธอด symmetric_difference() ก็ได้ โดยจะได้ผลลัพธ์เป็น Set ใหม่ ที่เก็บข้อมูลที่ไม่ซ้ำกันในทุก Set

item1 = {"iPhone", "iPad", "iPod", "iPod", "Mac OS"}

item2 = {"iPad", "Oppo", "Wiko", "iPhone"}

myitem = item1.symmetric_difference(item2)

print(myitem)

# {'Wiko', 'iPod', 'Oppo', 'Mac OS'}