ดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

     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

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
ทริป กางเต็นท์ ใกล้กรุงเทพ
โดย milk2533 จ 23 พ.ย. 2020 1:04 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
12
จ 23 พ.ย. 2020 1:04 pm โดย milk2533
- ให้เขียนประวัติ และ Job description ที่เคยทำมาแต่ละบริษัท โดยระบุประเภทธุรกิจที่เคยทำมา
โดย milk2533 จ 23 พ.ย. 2020 11:26 am บอร์ด M115 - กฤตวรรณ อาทิตย์ตั้ง
1
13
จ 23 พ.ย. 2020 4:34 pm โดย milk2533
list ความรู้ที่มี ว่าเคยเรียน หรือ เคยทำอะไรมาบ้าง
โดย milk2533 จ 23 พ.ย. 2020 11:26 am บอร์ด M115 - กฤตวรรณ อาทิตย์ตั้ง
3
22
จ 23 พ.ย. 2020 7:03 pm โดย milk2533
Work's on Hand กฤตวรรณ อาทิตย์ตั้ง M115
โดย milk2533 จ 23 พ.ย. 2020 11:24 am บอร์ด M115 - กฤตวรรณ อาทิตย์ตั้ง
0
3
จ 23 พ.ย. 2020 11:24 am โดย milk2533
note ส่วนตัว
โดย milk2533 จ 23 พ.ย. 2020 11:23 am บอร์ด M115 - กฤตวรรณ อาทิตย์ตั้ง
0
1
จ 23 พ.ย. 2020 11:23 am โดย milk2533
งานประจำวันที่ 23 พฤศจิกายน 2563
โดย milk2533 จ 23 พ.ย. 2020 11:21 am บอร์ด M115 - กฤตวรรณ อาทิตย์ตั้ง
2
28
จ 23 พ.ย. 2020 7:08 pm โดย milk2533
คำสั่งค้นหาไฟล์ จากขนาดของไฟล์
โดย mindphp จ 23 พ.ย. 2020 12:07 am บอร์ด Linux - Web Server
0
7
จ 23 พ.ย. 2020 12:07 am โดย mindphp
แก้ป้ญหา ภาษาไทย Error ใน Flask template ninja2 Error UnicodeDecodeError UnicodeDecodeError: 'ascii' codec can't decode
โดย mindphp ส 21 พ.ย. 2020 10:38 pm บอร์ด Python Knowledge
1
17
จ 23 พ.ย. 2020 12:22 pm โดย samay123