Python (ไพทอน) มีการจัดเก็บชุดข้อมูลตัวแปรอยู่หลายรูปแบบ เราสามารถเข้าถึงข้อมูลภายในชุดข้อมูลได้โดยการใช้ Loop เข้ามาช่วย โดยแต่ละตัวแปรก็จะมีข้อกำหนดและการเข้าถึงที่แตกต่างกันออกไป แต่ตัวแปรชนิดเซตนั้น มีความคล้ายกับตัวแปรชนิดลิสต์และทูเพิล บางฟังก์ชันและปฏิบัติการต่างๆนั้นก็สามารถใช้งานได้เหมือนๆกัน ซึ่งในบทความนี้เราจะมาพูดถึงการฟังก์ชันและการปฏิบัติการต่างๆเกี่ยวกับ Set ในภาษาไพทอนกัน

     หากมีตัวแปรที่จัดเก็บข้อมูลเป็นจำนวนมาก การอ้างถึงตัวแปรแต่ละตัวแปรก็จะเกิดความยุ่งยากและเกิดความสับสน ซึ่งเราอาจเปลี่ยนมาใช้วิธีการสร้างตัวแปรที่สามารถเก็บชุดข้อมูลแทนได้ โดยในภาษาไพทอนนั้นสามารถสร้างตัวแปรเพื่อเก็บชุดข้อมูลได้หลายแบบ เช่น ลิสต์ , ทูเพิล , เซต หรือ ดิกชันนารี ซึ่งชุดข้อมูลเหล่านั้นจะมีลักษณะเป็นลำดับที่ต่อเนื่องกัน เราจึงสามารถใช้ลูป for หรือ while รวมถึงฟังก์ชันต่างๆที่เกี่ยวข้องเพื่อดำเนินการกับชุดข้อมูลเหล่านั้นได้

ฟังก์ชันและการปฏิบัติการต่างๆเกี่ยวกับเซต

     เซตที่ไม่ได้สร้างจากคำสั่ง frozenset() สามารถเปลี่ยนแปลงสมาชิกได้ โดยจะมีฟังก์ชันเฉพาะตัวที่เกี่ยวกับการเพิ่มหรือลบให้ใช้งานได้ในบางลักษณะ และไม่ต้องระบุตัวเลขลำดับ นอกจากนี้แล้วยังมีฟังก์ชันในกลุ่ม Operation สำหรับการกระทำต่างๆระหว่างเซต ดังนี้

add() เพิ่มสมาชิกใหม่ 
clear() ลบสมาชิกทั้งหมด
pop() อ่านค่าสมาชิกตัวแรก แล้วทำการลบออกจากเซต
remove() ลบสมาชิกที่ระบุออกจากลิสต์
set1.issubset(set2) ตรวจสอบว่า set1 เป็นซับเซตของ set2 หรือไม่
set1.issuperset(set2) ตรวจสอบว่า set1 เป็นซูเปอร์เซตของ set2 หรือไม่
set1.union(set2) เป็นการรวมสมาชิกจากทั้งสองเซตเข้าด้วยกัน
set1.intersection(set2)  คัดเอาเฉพาะสมาชิกที่มีซ้ำกันทั้งสองเซต
set1.difference(set2) คัดเอาเฉพาะสมาชิกที่มีใน set1 แต่ไม่มีใน set2

     สำหรับฟังก์ชัน add() , clear() , pop() , remove() ก็ใช้งานเหมือนกันกับลิสต์และทูเพิล โดยฟังก์ชัน add() นั้น สมาชิกที่เพิ่มเข้าไป อาจจะไม่ได้อยู่ในลำดับสุดท้าย ส่วนถ้าเราสร้างเซตด้วย frozenset() จะไม่มีทั้งฟังก์ชัน add() , clear() , pop() , remove() เพราะเซตดังกล่าว ไม่สามารถเปลี่ยนแปลงสมาชิกได้นั่นเอง

ตัวอย่างการใช้งาน

a = {10,20,30,40}
a.add(50)   #เพิ่มสมาชิก 50 เข้าไปหนึ่งตัว

if 30 in a:
    a.remove(30)  #ทำการลบสมาชิก 30 ออก

x = a.pop()  #อ่านค่าตัวเลขแล้วทำการลบออก

print(x)
print(a)

ผลลัพธ์

ผลลัพธ์จากการใช้งานฟังก์ชันต่างๆ ตามตาราง
ผลลัพธ์จากการใช้ฟังก์ชันต่างๆ

     จากผลลัพธ์ที่ออกมา เราทำได้การเพิ่มสมาชิกเข้าไปหนึ่งตัว นั่นก็คือ 50 จากนั้นทำการตรวจหาสมาชิกที่ชื่อ 30 จากนั้นให้ลบสมาชิกที่ชื่อ 30 ออก และทำการประกาศชื่อสมาชิกตัวแรกจากนั้นทำการลบออก ผลทีได้ก็คือ 40 จากนั้นทำการแสดงผลลัพธ์ทั้งหมด 

แนวทางการใช้ฟังก์ชันอื่นๆ

set.issubset()

a = {10,20,30,}
a1 = {10,20,30,40,50,60}

print(a.issubset(a1))

set.union()

a = {10,20,30,}
a1 = {10,20,30,40,50,60}

print(a.union(a1))

set.intersection()

a = {10,20,30,}
a1 = {10,20,30,40,50,60}

print(a.intersection(a1))

     ซึ่งวิธีการในการใช้งานนั้นก็จะเหมือนๆกัน เราสามารถใช้งานได้ในรูปแบบตามตัวอย่างที่แสดงให้ดูในข้างต้น ส่วนฟังก์ชันแต่ละฟังก์ชันแตกต่างกันอย่างไร ก็สามารถดูและเปรียบเทียบได้จากตารางที่พูดถึงในตอนแรกได้เลย เพียงเท่านี้เราก็สามารถใช้งานฟังก์ชันและปฏิบัติการต่างๆที่เกี่ยวกับข้อมูลเซตในภาษาไพทอนได้แล้ว นับว่าไม่ยากเลย

 

 

ช่องทางการศึกษาเพิ่มเติมเกี่ยวกับ : Python 

ชนิดของข้อมูลในไพทอน (Python)

ตัวแปรชนิดลิส ใน ไพทอน Python Lists Data type

ตัวแปรชนิดทูเปิล ใน ไพทอน Python Tuples Data type

ตัวแปรชนิดดิกชันนารี ใน ไพทอน Python Dictionary Data type

ฟังก์ชั่นสำหรับแปลงชนิดข้อมูล ใน ไพทอน Python Data Type Conversion

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
SQL - Trigger คืออะไร? มีประโยชน์อย่างไรในการทำงาน
โดย athirach.offcial พ 27 มี.ค. 2024 10:54 am บอร์ด SQL Knowledge
1
255
พ 27 มี.ค. 2024 5:49 pm โดย athirach.offcial View Topic SQL - Trigger คืออะไร? มีประโยชน์อย่างไรในการทำงาน
วิธีอ่านค่าแรม จากสติ๊กเกอร์แปะแรม ตัวอย่างของ KVR Kingston
โดย mindphp อ 26 มี.ค. 2024 6:28 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
119
อ 26 มี.ค. 2024 6:28 pm โดย mindphp View Topic วิธีอ่านค่าแรม จากสติ๊กเกอร์แปะแรม ตัวอย่างของ KVR Kingston
การลบฐานข้อมูลโดยไม่ Backup ความผิดพลาดที่สามารถเสื่อมเสียธุรกิจ
โดย athirach.offcial อ 26 มี.ค. 2024 6:24 pm บอร์ด SQL Knowledge
0
89
อ 26 มี.ค. 2024 6:24 pm โดย athirach.offcial View Topic การลบฐานข้อมูลโดยไม่ Backup ความผิดพลาดที่สามารถเสื่อมเสียธุรกิจ
การลบฐานข้อมูลโดยไม่ Backup ความผิดพลาดที่สามารถเสื่อมเสียธุรกิจ
โดย athirach.offcial อ 26 มี.ค. 2024 3:38 pm บอร์ด Linux - Web Server
0
98
อ 26 มี.ค. 2024 3:38 pm โดย athirach.offcial View Topic การลบฐานข้อมูลโดยไม่ Backup ความผิดพลาดที่สามารถเสื่อมเสียธุรกิจ
ทำความรู้จัก Linear regression เทคนิคพื้นฐานทางสถิติในการทำนายข้อมูล
โดย athirach.offcial อ 26 มี.ค. 2024 3:04 pm บอร์ด Python Knowledge
0
113
อ 26 มี.ค. 2024 3:04 pm โดย athirach.offcial View Topic ทำความรู้จัก Linear regression เทคนิคพื้นฐานทางสถิติในการทำนายข้อมูล
ราคาเครื่อง Server Dell R210 II เมื่อ 11 ปีก่อน (15 พ.ค. 2013 )
โดย mindphp อ 26 มี.ค. 2024 2:49 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
102
อ 26 มี.ค. 2024 2:49 am โดย mindphp View Topic ราคาเครื่อง Server Dell R210 II เมื่อ 11 ปีก่อน (15 พ.ค. 2013 )
CPU ที่สามารถใช้ได้กับเมนบอร์ดซ็อกเก็ต FCLGA1155 บนเครื่อง Dell Server R210 II
โดย mindphp อ 26 มี.ค. 2024 1:45 am บอร์ด Microsoft Office Knowledge & line & Etc
1
114
อ 26 มี.ค. 2024 1:49 am โดย mindphp View Topic CPU ที่สามารถใช้ได้กับเมนบอร์ดซ็อกเก็ต FCLGA1155 บนเครื่อง Dell Server R210 II
อัพเดท joomla 3.10.12 to 4 ไม่ได้ครับ ติด Invalid login
โดย Itadm จ 25 มี.ค. 2024 3:35 pm บอร์ด Joomla Development
7
2084
ศ 29 มี.ค. 2024 1:50 pm โดย mindphp View Topic อัพเดท joomla 3.10.12 to 4 ไม่ได้ครับ ติด Invalid login