Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python Set Types


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

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

ใน python มี set อยู่ 2 แบบ ชุด และ ชุดแช่แข็ง . ชนิดของชุดจะเปลี่ยนแปลงได้ ไม่ว่าชุดเยือกแข็งจะไม่เปลี่ยนรูปแบบหรือไม่ เราสามารถดำเนินการ add(), remove() และการดำเนินการประเภทนี้ในเซ็ต แต่เป็นไปไม่ได้สำหรับfrozenset

วิธีการและการดำเนินการที่เกี่ยวข้องบางชุดมีดังนี้ −

วิธีการใช้งาน

len() วิธีการส่งกลับจำนวนขององค์ประกอบในชุด

การทำงาน (x ใน s) หรือ (ไม่ใช่ s)

ใน และ ไม่อยู่ใน การดำเนินการจะใช้เพื่อตรวจสอบความเป็นสมาชิกขององค์ประกอบในชุด ในคำสั่งแรก (x ใน s) มันจะคืนค่า จริง เมื่อค่า x พร้อมใช้งานในชุด s อันที่สอง (y ไม่อยู่ใน s) จะคืนค่า จริง เมื่อองค์ประกอบ y ไม่มีอยู่ในเซต

วิธีการ isdisjoint(other_set)

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

วิธีการ issuperset(other_set)

ฟังก์ชันนี้คืนค่า จริง เมื่อองค์ประกอบทั้งหมดในชุด other_set มีอยู่ในชุดปัจจุบันด้วย โดยทั่วไปจะตรวจสอบว่าชุดปัจจุบันเป็นชุด superset ของชุดอื่น ๆ หรือไม่

เมธอดยูเนี่ยน(other_set)

ฟังก์ชัน union() จะคืนค่าชุดใหม่โดยรวบรวมองค์ประกอบทั้งหมดจากชุดปัจจุบันและชุดอื่น ๆ _set

วิธีแยก(other_set)

ฟังก์ชัน intersection() จะคืนค่าชุดใหม่โดยรวบรวมองค์ประกอบทั่วไปจากชุดปัจจุบันและชุดอื่น ๆ _set

ความแตกต่างของวิธีการ(other_set)

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

วิธีการเพิ่ม (องค์ประกอบ)

เพิ่มองค์ประกอบองค์ประกอบในชุด

วิธีการทิ้ง(องค์ประกอบ)

ลบองค์ประกอบองค์ประกอบออกจากชุด สิ่งนี้จะทำงานเมื่อมีองค์ประกอบอยู่ในชุด มีวิธีการอื่นที่เรียกว่า remove() ในการลบ () จะเพิ่ม KeyError หากไม่มีรายการในชุด

โค้ดตัวอย่าง

mySet1 = {1, 2, 5, 6}
mySet2 = {8, 5, 3, 4}
mySet3 = set(range(15)) # all elements from 0 to 14 in the set
mySet4 = {10, 20, 30, 40}
print(set(mySet1.union(mySet2)))
print(set(mySet1.intersection(mySet2)))
print(set(mySet1.difference(mySet2)))

print(mySet3.issuperset(mySet1))
print(mySet1.isdisjoint(mySet4))

mySet4.add(45)
print(mySet4)

mySet4.discard(40)
print(mySet4)

ผลลัพธ์

set([1, 2, 3, 4, 5, 6, 8])
set([5])
set([1, 2, 6])
True
True
set([40, 10, 20, 45, 30])
set([10, 20, 45, 30])