Skip to content

Latest commit

 

History

History
49 lines (30 loc) · 3.01 KB

File metadata and controls

49 lines (30 loc) · 3.01 KB

เซ็ตคืออะไร

เซ็ตคือรายการที่ไม่มีรายการซ้ำกัน ลองนึกภาพว่าคุณต้องการรวบรวมรายการคำที่ใช้ในย่อหน้า:

print(set("my name is Eric and Eric is my name".split()))

โปรแกรมนี้จะพิมพ์รายชื่อที่ประกอบไปด้วย "my", "name", "is", "Eric" และ "and" เนื่องจากคำที่เหลือในประโยคใช้คำที่มีอยู่แล้วในเซ็ต เลยจะไม่ถูกเพิ่มซ้ำสองครั้ง

เซ็ตเป็นเครื่องมือที่ทรงพลังใน Python เนื่องจากมีความสามารถในการคำนวณความแตกต่างและจุดร่วมระหว่างเซ็ตอื่น ๆ ตัวอย่างเช่น สมมติว่าคุณมีรายชื่อผู้เข้าร่วมในกิจกรรม A และ B:

a = set(["Jake", "John", "Eric"])
print(a)
b = set(["John", "Jill"])
print(b)

หากต้องการทราบว่ามีสมาชิกใดบ้างที่เข้าร่วมทั้งสองกิจกรรม คุณสามารถใช้เมธอด "intersection":

a = set(["Jake", "John", "Eric"])
b = set(["John", "Jill"])

print(a.intersection(b))
print(b.intersection(a))

หากต้องการทราบว่ามีสมาชิกใดที่เข้าร่วมเพียงหนึ่งในสองกิจกรรม ใช้เมธอด "symmetric_difference":

a = set(["Jake", "John", "Eric"])
b = set(["John", "Jill"])

print(a.symmetric_difference(b))
print(b.symmetric_difference(a))

หากต้องการทราบว่ามีสมาชิกใดที่เข้าร่วมเพียงกิจกรรมหนึ่งและไม่ใช่อีกกิจกรรม ใช้เมธอด "difference":

a = set(["Jake", "John", "Eric"])
b = set(["John", "Jill"])

print(a.difference(b))
print(b.difference(a))

หากต้องการรับรายชื่อผู้เข้าร่วมทั้งหมด ใช้เมธอด "union":

a = set(["Jake", "John", "Eric"])
b = set(["John", "Jill"])

print(a.union(b))

แบบฝึกหัด--------

ในแบบฝึกหัดด้านล่าง ใช้รายการที่กำหนดเพื่อพิมพ์เซ็ตที่มีผู้เข้าร่วมทั้งหมดจากกิจกรรม A ที่ไม่ได้เข้าร่วมกิจกรรม B