ในคณิตศาสตร์ เซตคือชุดของวัตถุที่แตกต่างกัน ถือเป็นวัตถุหนึ่งตัว เช่น ตัวเลข 2, 4, 6 แยกกันเป็นวัตถุต่างกัน แต่รวมกันเป็นเซตขนาดสาม เขียน {2,4,6}
การดำเนินการบนเซต
| การดำเนินการ | สัญลักษณ์ | ความหมาย |
|---|---|---|
| Intersection ( 교집합 ) | A ∩ B | สมาชิกทั้งหมดที่อยู่ในทั้ง A และ B |
| Union ( 합집합 ) | A ∪ B | สมาชิกทั้งหมดที่อยู่ใน A หรือ B (หรือทั้งคู่) |
| Difference ( 차집합 ) | A − B | สมาชิกที่อยู่ใน A แต่ไม่อยู่ใน B |
| Complement ( 여집합 ) | A' (หรือ A^c) | สมาชิกทั้งหมดที่ไม่อยู่ใน A |
ใน Python เปรียบเทียบกับลิสต์ ข้อได้เปรียบหลักของเซตคือมีฟังก์ชันที่เหมาะสมสำหรับตรวจสอบว่าสมาชิกเฉพาะอยู่ในเซตหรือไม่ โดยใช้โครงสร้างข้อมูลแฮชเทเบิล
เมธอดสำหรับเซต
add(x) Method: เพิ่มรายการ x เข้าเซตถ้ายังไม่มีอยู่
A = {"AA", "BB", "CC"}
A.add("VV")
จะเพิ่ม VV เข้าเซต A
union(s) Method: คืนยูเนียนของสองเซต ใช้ '|' ระหว่างสองเซตเหมือน My_Set1.union(My_Set2)
A = {"AA", "BB", "CC"}
B = {"MM", "NN"}
Z = A.union(B) หรือ Z = A|B
เซตผลลัพธ์จะมีสมาชิกของทั้ง A และ B
intersect(s) Method: คืน intersection ของสองเซต ใช้ '&' ได้
S = A.intersection(B)
เซตผลลัพธ์จะมีสมาชิกร่วมของ A และ B
difference(s) Method: คืนเซตที่มีสมาชิกอยู่ในเซตแรกแต่ไม่อยู่ในเซตที่สอง ใช้ '-' ได้
W = A.difference(B) หรือ S = A - B
เซตผลลัพธ์จะมีสมาชิกที่อยู่ใน A แต่ไม่อยู่ใน B
clear() Method: ล้างเซตทั้งหมดให้ว่าง
B.clear()
ล้างเซต B
ตัวดำเนินการสำหรับเซต
เซตและ frozenset รองรับตัวดำเนินการต่อไปนี้ -
key in s # ตรวจสอบสมาชิก key not in s # ตรวจสอบไม่ใช่สมาชิก s1 == s2 # s1 เทียบเท่า s2 s1 != s2 # s1 ไม่เทียบเท่า s2 s1 <= s2 # s1 เป็น subset ของ s2 s1 < s2 # s1 เป็น proper subset ของ s2 s1 >= s2 # s1 เป็น superset ของ s2 s1 > s2 # s1 เป็น proper superset ของ s2 s1 | s2 # ยูเนียนของ s1 และ s2 s1 & s2 # intersection ของ s1 และ s2 s1 - s2 # สมาชิกใน s1 แต่ไม่ใน s2 s1 ^ s2 # สมาชิกใน s1 หรือ s2 เพียงอย่างใดอย่างหนึ่ง
โค้ดตัวอย่าง
# โปรแกรม Python สาธิตการทำงานของเซต
# สร้างเซตสองเซต
My_Set1 = set()
My_Set2 = set()
# เพิ่มสมาชิกใน My_Set1
for i in range(1, 6):
My_Set1.add(i)
# เพิ่มสมาชิกใน My_Set2
for i in range(3, 8):
My_Set2.add(i)
print("My_Set1 = ", My_Set1)
print("My_Set2 = ", My_Set2)
print("\n")
# ยูเนียนของ My_Set1 และ My_Set2
My_Set3 = My_Set1 | My_Set2 # My_Set1.union(My_Set2)
print("ยูเนียนของ My_Set1&My_Set2: My_Set3 = ", My_Set3)
# Intersection ของ My_Set1 และ My_Set2
My_Set4 = My_Set1 & My_Set2 # My_Set1.intersection(My_Set2)
print("Intersection ของ My_Set1&My_Set2: My_Set4 = ", My_Set4)
print("\n")
# ตรวจสอบความสัมพันธ์ระหว่าง My_Set3 และ My_Set4
if My_Set3 > My_Set4: # My_Set3.issuperset(My_Set4)
print("My_Set3 เป็น superset ของ My_Set4")
elif My_Set3 < My_Set4: # My_Set3.issubset(My_Set4)
print("My_Set3 เป็น subset ของ My_Set4")
else: # My_Set3 == My_Set4
print("My_Set3 เหมือน My_Set4")
# แสดงความสัมพันธ์ระหว่าง My_Set4 และ My_Set3
if My_Set4 < My_Set3: # My_Set4.issubset(My_Set3)
print("My_Set4 เป็น subset ของ My_Set3")
print("\n")
# ความต่างระหว่าง My_Set3 และ My_Set4
My_Set5 = My_Set3 - My_Set4
print("สมาชิกใน My_Set3 แต่ไม่อยู่ใน My_Set4: My_Set5 = ", My_Set5)
print("\n")
# ตรวจสอบว่า My_Set4 และ My_Set5 เป็น disjoint sets หรือไม่
if My_Set4.isdisjoint(My_Set5):
print("My_Set4 และ My_Set5 ไม่มีสมาชิกร่วมกัน\n")
# ล้างค่าทั้งหมดของ My_Set5
My_Set5.clear()
print("หลังใช้ clear บนเซต My_Set5: ")
print("My_Set5 = ", My_Set5)
ผลลัพธ์
My_Set1 = {1, 2, 3, 4, 5}
My_Set2 = {3, 4, 5, 6, 7}
ยูเนียนของ My_Set1&My_Set2: My_Set3 = {1, 2, 3, 4, 5, 6, 7}
Intersection ของ My_Set1&My_Set2: My_Set4 = {3, 4, 5}
My_Set3 เป็น superset ของ My_Set4
My_Set4 เป็น subset ของ My_Set3
สมาชิกใน My_Set3 แต่ไม่อยู่ใน My_Set4: My_Set5 = {1, 2, 6, 7}
My_Set4 และ My_Set5 ไม่มีสมาชิกร่วมกัน
หลังใช้ clear บนเซต My_Set5:
My_Set5 = set()