สวัสดีครับ กลับมาอีกครั้งกับ Artisan Brain Academy ต่อเนื่องจากตอนที่แล้วเราพูดถึง Collections : tuple กันไป และวันนี้ Python for Beginner EP.5 : Python Collections (set) ขอนำเสนอ collection ที่ชื่อว่า Set
ซึ่งเจ้าข้อมูล Set นี้จะเป็นข้อมูลที่จะไม่เรียงข้อมูลกันเลย หมายความว่า ถ้าหากเราใส่ดังนี้
basket = {‘apple’, ‘orange’, ‘apple’, ‘pear’, ‘orange’, ‘banana’}
ผลลัพธ์ที่ได้จะเป็นข้อมูลที่ ไม่ซ้ำกัน และ ข้อมูลจะไม่เรียงเหมือนที่เราได้ตั้งค่าไว้เริ่มแรก!!!! แต่จะมีฟังก์ชั่นทางคณิตศาตร์ ได้แก่ union, intersection, difference and symmetric difference เราไม่ดูการทำงานฟังก์ชั่นเหล่านี้กัน
หากต้องการค้นว่าใน basket มี orange ไหมเราสามารถใช้ท่านี้ได้
found_orange = ‘orange’ in basket
if found_orange:
print(“found”)
else:
print(“not found”)
เรามาดูกันอีกตัวอย่างกันนะครับ
basket_one = {‘apple’, ‘orange’, ‘apple’, ‘pear’, ‘orange’, ‘banana’}
basket_two = {‘apple’, ‘banana’}
ถ้าต้องการอยากทราบว่า set b เป็น subset ของ set a หรือไม่จะใช้คำสั่งนี้
basket_two.issubset(basket_one) # True
basket_two <= basket_one # True
ถ้าต้องการดูว่าข้อมูลทั้ง 2 sets รวมกันว่ามีอะไรบ้างจะใช้คำสั่งว่า union หรือ |
basket_one.union(basket_one) # {‘apple’, ‘banana’, ‘orange’, ‘pear’}
basket_one | basket_two # {‘apple’, ‘banana’, ‘orange’, ‘pear’}
ถ้าต้องการดูข้อมูลว่าทั้ง 2 sets มีอะไรที่เหมือนกันจะใช้คำสั่งว่า intersection หรือ &
basket_one & basket_two # {‘apple’, ‘banana’}
basket_one.intersection(basket_two) # {‘apple’, ‘banana’}
ถ้าต้องการดูข้อมูลทั้ง 2 sets มีอะไรที่ set one ไม่ซ้ำกับ set two ใช้คำสั่งว่า difference หรือ –
basket_one – basket_two # {‘orange’, ‘pear’}
basket_one.difference(basket_two) # {‘orange’, ‘pear’}
ถ้าต้องการดูข้อมูลว่าทั้ง 2 sets มีอะไรที่ไม่ซ้ำกันจะใช้คำสั่งว่า symmetric_difference หรือ ^
basket_one ^basket_two # {‘orange’, ‘pear’}
basket_one.symmetric_difference(basket_two) # {‘orange’, ‘pear’}
สรุปว่าการใช้ Set นั้นเหมาะกับข้อมูล 2 ชุดขึ้นไป ที่ต้องการหาข้อมูลที่ซ้ำ / ไม่ซ้ำกันออกมาเป็นต้น เช่นดึงข้อมูลวันหยุดพนักงานมาทั้งหมด แล้วอยากรู้ว่าปีนี้ พนักงานทั้งหมดลาหยุดวันไหนกันบ้าง และวันหยุดวันไหนที่มีคนลาเยอะที่สุด
หวังว่าบทความนี้ จะเป็นประโยชน์กันบ้างนะครับผม แล้วพบกัน Python EP 6 นะครับ
Happy Coding!!!!
อ่านบทความเกี่ยวกับ set เพิ่มเติมได้ที่ นี่