Python - ชุด

ในทางคณิตศาสตร์ชุดคือชุดของรายการที่ไม่ได้เรียงตามลำดับใด ๆ ชุด Python คล้ายกับนิยามทางคณิตศาสตร์นี้โดยมีเงื่อนไขเพิ่มเติมด้านล่าง

  • องค์ประกอบในชุดต้องไม่ซ้ำกัน
  • องค์ประกอบในชุดไม่เปลี่ยนรูป (ไม่สามารถแก้ไขได้) แต่ชุดโดยรวมไม่แน่นอน
  • ไม่มีดัชนีที่แนบมากับองค์ประกอบใด ๆ ในชุด python ดังนั้นจึงไม่สนับสนุนการทำดัชนีหรือการแบ่งส่วนใด ๆ

ตั้งค่าการทำงาน

โดยทั่วไปชุดใน python จะใช้สำหรับการดำเนินการทางคณิตศาสตร์เช่นยูเนี่ยนจุดตัดความแตกต่างและส่วนเติมเต็มเป็นต้นเราสามารถสร้างชุดเข้าถึงองค์ประกอบของมันและดำเนินการทางคณิตศาสตร์เหล่านี้ได้ดังที่แสดงด้านล่าง

การสร้างชุด

ชุดถูกสร้างขึ้นโดยใช้ฟังก์ชัน set () หรือวางองค์ประกอบทั้งหมดไว้ในวงเล็บปีกกาคู่หนึ่ง

Days=set(["Mon","Tue","Wed","Thu","Fri","Sat","Sun"])
Months={"Jan","Feb","Mar"}
Dates={21,22,17}
print(Days)
print(Months)
print(Dates)

เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังต่อไปนี้ โปรดสังเกตว่าลำดับขององค์ประกอบมีการเปลี่ยนแปลงอย่างไรในผลลัพธ์

set(['Wed', 'Sun', 'Fri', 'Tue', 'Mon', 'Thu', 'Sat'])
set(['Jan', 'Mar', 'Feb'])
set([17, 21, 22])

การเข้าถึงค่าในชุด

เราไม่สามารถเข้าถึงแต่ละค่าในชุดได้ เราสามารถเข้าถึงองค์ประกอบทั้งหมดด้วยกันดังที่แสดงด้านบนเท่านั้น แต่เรายังสามารถรับรายการของแต่ละองค์ประกอบได้โดยการวนซ้ำผ่านชุด

Days=set(["Mon","Tue","Wed","Thu","Fri","Sat","Sun"])
 
for d in Days:
	print(d)

เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังต่อไปนี้

Wed
Sun
Fri
Tue
Mon
Thu
Sat

การเพิ่มรายการในชุด

เราสามารถเพิ่มองค์ประกอบให้กับชุดได้โดยใช้วิธีการเพิ่ม () อีกครั้งตามที่กล่าวไว้ไม่มีดัชนีเฉพาะที่แนบมากับองค์ประกอบที่เพิ่มใหม่

Days=set(["Mon","Tue","Wed","Thu","Fri","Sat"])
 
Days.add("Sun")
print(Days)

เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังต่อไปนี้

set(['Wed', 'Sun', 'Fri', 'Tue', 'Mon', 'Thu', 'Sat'])

การลบรายการออกจากชุด

เราสามารถลบองค์ประกอบออกจากชุดได้โดยใช้เมธอด discard () อีกครั้งตามที่กล่าวไว้ไม่มีดัชนีเฉพาะที่แนบมากับองค์ประกอบที่เพิ่มใหม่

Days=set(["Mon","Tue","Wed","Thu","Fri","Sat"])
 
Days.discard("Sun")
print(Days)

เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังต่อไปนี้

set(['Wed', 'Fri', 'Tue', 'Mon', 'Thu', 'Sat'])

สหภาพชุด

การดำเนินการรวมกันของสองชุดจะสร้างชุดใหม่ที่มีองค์ประกอบที่แตกต่างกันทั้งหมดจากทั้งสองชุด ในตัวอย่างด้านล่างองค์ประกอบ "พ." มีอยู่ในทั้งสองชุด

DaysA = set(["Mon","Tue","Wed"])
DaysB = set(["Wed","Thu","Fri","Sat","Sun"])
AllDays = DaysA|DaysB
print(AllDays)

เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังต่อไปนี้ โปรดทราบว่าผลลัพธ์มีเพียง "แต่งงาน" เพียงครั้งเดียว

set(['Wed', 'Fri', 'Tue', 'Mon', 'Thu', 'Sat'])

จุดตัดของชุด

การดำเนินการตัดกันของสองชุดจะสร้างชุดใหม่ที่มีเฉพาะองค์ประกอบทั่วไปจากทั้งสองชุด ในตัวอย่างด้านล่างองค์ประกอบ "พ." มีอยู่ในทั้งสองชุด

DaysA = set(["Mon","Tue","Wed"])
DaysB = set(["Wed","Thu","Fri","Sat","Sun"])
AllDays = DaysA & DaysB
print(AllDays)

เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังต่อไปนี้ โปรดทราบว่าผลลัพธ์มีเพียง "แต่งงาน" เพียงครั้งเดียว

set(['Wed'])

ความแตกต่างของชุด

การดำเนินการความแตกต่างของสองชุดจะสร้างชุดใหม่ที่มีเฉพาะองค์ประกอบจากชุดแรกและไม่มีจากชุดที่สอง ในตัวอย่างด้านล่างองค์ประกอบ "พ." มีอยู่ในทั้งสองชุดดังนั้นจะไม่พบในชุดผลลัพธ์

DaysA = set(["Mon","Tue","Wed"])
DaysB = set(["Wed","Thu","Fri","Sat","Sun"])
AllDays = DaysA - DaysB
print(AllDays)

เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังต่อไปนี้ โปรดทราบว่าผลลัพธ์มีเพียง "แต่งงาน" เพียงครั้งเดียว

set(['Mon', 'Tue'])

เปรียบเทียบชุด

เราสามารถตรวจสอบได้ว่าชุดที่กำหนดเป็นเซตย่อยหรือส่วนเหนือของชุดอื่น ผลลัพธ์จะเป็นจริงหรือเท็จขึ้นอยู่กับองค์ประกอบที่มีอยู่ในชุด

DaysA = set(["Mon","Tue","Wed"])
DaysB = set(["Mon","Tue","Wed","Thu","Fri","Sat","Sun"])
SubsetRes = DaysA <= DaysB
SupersetRes = DaysB >= DaysA
print(SubsetRes)
print(SupersetRes)

เมื่อดำเนินการโค้ดด้านบนจะให้ผลลัพธ์ดังต่อไปนี้

True
True