บ่อยครั้งเมื่อคุณทำงานกับข้อมูล คุณจะต้องการจัดเก็บรายการข้อมูลที่ไม่สามารถมีค่าที่ซ้ำกันได้ และค่าที่ไม่สามารถเปลี่ยนแปลงค่าได้ ตัวอย่างเช่น หากคุณกำลังสร้างรายการรหัสการซื้อที่ร้านขายของชำ คุณต้องการให้แต่ละรหัสไม่ซ้ำกัน และคุณไม่ต้องการให้ใครเปลี่ยนค่าในรายการของคุณได้
นั่นคือที่มาของชุดวัตถุ Python ชุดคือชุดของรายการที่ไม่เรียงลำดับซึ่งสามารถมีค่าที่ไม่ซ้ำกันเท่านั้น
บทช่วยสอนนี้จะกล่าวถึง โดยอ้างอิงกับตัวอย่าง พื้นฐานของชุด Python และวิธีที่คุณสามารถดำเนินการทั่วไป เช่น การเพิ่มและลบค่าในชุด
ชุดหลาม
โครงสร้างข้อมูลชุดในตัวของ Python นั้นคล้ายคลึงกับแนวคิดของชุดข้อมูลในวิชาคณิตศาสตร์
ชุด Python สามารถมีองค์ประกอบตั้งแต่ศูนย์ขึ้นไป และไม่มีลำดับที่กำหนดไว้สำหรับแต่ละองค์ประกอบในชุด ทุกองค์ประกอบที่จัดเก็บไว้ในชุดนั้นไม่ซ้ำกัน ดังนั้นจึงไม่สามารถมีรายการซ้ำกันได้ และค่าแต่ละค่าในชุดจะไม่สามารถเปลี่ยนแปลงได้
แม้ว่าค่าแต่ละค่าในชุดจะไม่สามารถเปลี่ยนแปลงได้ แต่ตัวชุดเองก็สามารถเปลี่ยนแปลงได้ ซึ่งหมายความว่าเราสามารถเพิ่มหรือลบรายการออกจากชุดของเราได้
โครงสร้างชุดมีประโยชน์เพราะมันมาพร้อมกับการดำเนินการทางคณิตศาสตร์จำนวนหนึ่งที่เราสามารถใช้ในการทำงานกับข้อมูลที่เราจัดเก็บไว้ในชุด
สร้างชุด Python
ใน Python ชุดถูกกำหนดให้เป็นรายการของไอเท็ม (หรือ “องค์ประกอบ”) ที่คั่นด้วยเครื่องหมายจุลภาค รายชื่ออยู่ในวงเล็บปีกกา ({})
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
ชุด Python สามารถจัดเก็บรายการได้จำนวนเท่าใดก็ได้ และแต่ละรายการภายในชุดสามารถใช้ประเภทข้อมูลที่แตกต่างกันได้ ดังนั้น ชุดสามารถเก็บทั้งจำนวนเต็มหรือสตริง หรือสตริง ทุ่น และทูเพิล อย่างไรก็ตาม ชุดไม่สามารถจัดเก็บชนิดข้อมูลที่เปลี่ยนแปลงได้ เช่น ชุดอื่น พจนานุกรม หรือรายการ
สมมติว่าเราต้องการสร้างชุดที่เก็บรายการการบ้านที่นักเรียนส่งในชั้นเรียนภาษาอังกฤษ เราสามารถสร้างชุดนี้โดยใช้รหัสต่อไปนี้:
assignments = {"Worksheet #4", "Worksheet #5", "Worksheet #7", "End of Topic Review #2"}
print(assignments)
รหัสของเราส่งคืน:
{'เวิร์กชีต #5', 'เวิร์กชีต #4', 'เวิร์กชีต #7', 'สิ้นสุดการตรวจสอบหัวข้อ #2'}
ในโค้ดของเรา เราได้กำหนดชุดที่เรียกว่า assignments ซึ่งมีสี่ค่า จากนั้น เราพิมพ์เนื้อหาของงานที่มอบหมายไปยังคอนโซล คุณจะเห็นว่าค่าของเราถูกส่งคืนในลำดับแบบสุ่ม เนื่องจากชุดไม่ได้จัดเก็บรายการในลำดับใดๆ
เปลี่ยนชุด
เมื่อคุณสร้างชุดแล้ว คุณจะไม่สามารถเปลี่ยนค่าของรายการในชุดได้ อย่างไรก็ตาม คุณสามารถเพิ่มรายการและลบรายการออกจากชุดได้
เพิ่มรายการในชุด
หากต้องการเพิ่มองค์ประกอบในชุด Python คุณสามารถใช้ add() กระบวนการ. สมมติว่านักเรียนเพิ่งส่ง Worksheet #8 และเราต้องการอัปเดตชุดของเราเพื่อติดตามการมอบหมายงานของนักเรียน เราสามารถทำได้โดยใช้รหัสนี้:
assignments = {"Worksheet #4", "Worksheet #5", "Worksheet #7", "End of Topic Review #2"}
assignments.add("Worksheet #8")
print(assignments)
รหัสของเราส่งคืน:
{'Worksheet #8', 'Worksheet #4', 'Worksheet #5', 'End of Topic Review #2', 'Worksheet #7'}
อย่างที่คุณเห็น Worksheet #8 ได้ถูกเพิ่มเข้าไปในชุดของเราแล้ว
นอกจากนี้ หากคุณต้องการเพิ่มหลายรายการในชุด คุณสามารถใช้ update() กระบวนการ. update() method ยอมรับรายการที่คุณต้องการเพิ่มไปยังชุดเป็นพารามิเตอร์ จากนั้นจึงเพิ่มรายการเหล่านั้นไปยังชุด
สมมติว่านักเรียนส่งใบงานทั้ง #8 และ #9 แล้ว เราสามารถเปลี่ยนชุดของเราเพื่อแสดงการมอบหมายใหม่เหล่านี้ที่ส่งโดยใช้รหัสนี้:
assignments = {"Worksheet #4", "Worksheet #5", "Worksheet #7", "End of Topic Review #2"}
assignments.update(["Worksheet #8", "Worksheet #9"])
print(assignments)
รหัสของเราส่งคืน:
{'Worksheet #9', 'End of Topic Review #2', 'Worksheet #8', 'Worksheet #7', 'Worksheet #4', 'Worksheet #5'}
ตอนนี้ชุดของเราประกอบด้วยค่าใหม่สองค่า:Worksheet #8 และ Worksheet #9 .
ลบองค์ประกอบออกจากชุด
หากต้องการลบองค์ประกอบออกจากชุด คุณสามารถใช้ discard() หรือ remove() .
discard() ฟังก์ชันลบรายการออกจากชุดและไม่ส่งคืนหากไม่มีรายการในชุด remove() ฟังก์ชันจะพยายามลบรายการออกจากชุด และหากไม่มีรายการนั้น จะเกิดข้อผิดพลาดขึ้น
สมมติว่าเราต้องการลบ Worksheet #9 จากบันทึกการบ้านของนักเรียนเพราะถูกขอให้ทำการบ้านใหม่ เราสามารถทำได้โดยใช้รหัสนี้:
assignments = {'Worksheet #9', 'End of Topic Review #2', 'Worksheet #8', 'Worksheet #7', 'Worksheet #4', 'Worksheet #5'}
assignments.discard("Worksheet #9")
print(assignments)
รหัสของเราส่งคืน:
{'End of Topic Review #2', 'Worksheet #5', 'Worksheet #4', 'Worksheet #8', 'Worksheet #7'}
จะเห็นว่าค่า Worksheet #9 ถูกลบออกจากชุดของเรา เราทำได้โดยใช้ discard() กระบวนการ.
ล้างชุด
หากต้องการล้างชุด คุณสามารถใช้ clear() กระบวนการ. สมมติว่าเราต้องการลบบันทึกการมอบหมายงานของนักเรียนเนื่องจากเป็นช่วงสิ้นปีและเราไม่จำเป็นต้องจัดเก็บข้อมูลอีกต่อไป เราสามารถทำได้โดยใช้รหัสนี้:
assignments = {'Worksheet #9', 'End of Topic Review #2', 'Worksheet #8', 'Worksheet #7', 'Worksheet #4', 'Worksheet #5'}
assignments.clear()
print(assignments)
รหัสของเราส่งคืน:{} นี่สะท้อนถึงเซตว่างของเรา
ระยะเวลาคืนชุด
หากต้องการทราบจำนวนรายการที่เก็บไว้ในชุด คุณสามารถใช้ len() กระบวนการ.
สมมติว่าเราต้องการหาจำนวนการบ้านที่นักเรียนส่งไป เราสามารถทำได้โดยใช้รหัสนี้:
assignments = {'Worksheet #9', 'End of Topic Review #2', 'Worksheet #8', 'Worksheet #7', 'Worksheet #4', 'Worksheet #5'}
print(len(assignments))
โค้ดของเราส่งคืน:6. ในโค้ดของเรา ขั้นแรกเราจะประกาศชุดที่เรียกว่า assignments . จากนั้น เราใช้ len() วิธีหาจำนวนรายการที่เก็บอยู่ใน assignments ชุด.
การทำงานของชุด Python
ข้อดีอย่างหนึ่งของการใช้ชุดเพื่อจัดเก็บข้อมูลคือชุดนั้นรองรับการทำงานของชุดทางคณิตศาสตร์ มาดูกันว่าการทำงานของชุดหลักสามชุดทำงานอย่างไร
การดำเนินการตั้งค่าเหล่านี้ ไม่เปลี่ยนแปลง เนื้อหาของชุด แต่จะทำการคำนวณในชุดที่มีอยู่
ตั้งยูเนี่ยน
union() วิธีช่วยให้เราสามารถสร้างชุดขององค์ประกอบทั้งหมดจากสองชุด
สมมติว่าเรามีงานมอบหมายของนักเรียนสองคนที่เราต้องการรวมเข้าด้วยกัน รายการหนึ่งประกอบด้วยข้อมูลการบ้านของนักเรียน และอีกรายการมีรายการงานเรียงความที่นักเรียนทำเสร็จแล้ว เราสามารถรวมรายการเหล่านี้โดยใช้รหัสนี้:
assignments = {"Worksheet #4", "Worksheet #5", "Worksheet #7"}
essays = {"Essay #1", "Essay #2"}
homework = assignments.union(essays)
print(homework)
รหัสของเราส่งคืน:
{'แผ่นงาน #7', 'เรียงความ #2', 'แผ่นงาน #4', 'เรียงความ #1', 'แผ่นงาน #5'}
ในโค้ดของเรา เราใช้ union() วิธีการรวมสองชุดของเราเข้าด้วยกัน เรากำหนดค่าของชุดที่ผสานใหม่ให้กับตัวแปร homework . จากนั้นเราก็พิมพ์ค่าของ homework ตัวแปร.
หรือเราอาจใช้รหัสต่อไปนี้:
assignments = {"Worksheet #4", "Worksheet #5", "Worksheet #7"}
essays = {"Essay #1", "Essay #2"}
print(assignments | essays)
“|” ตัวดำเนินการดำเนินการชุดยูเนี่ยน รหัสของเราส่งคืนชุดที่ผสาน:
{'เรียงความ #2', 'แผ่นงาน #4', 'แผ่นงาน #5', 'เรียงความ #1', 'แผ่นงาน #7'}
กำหนดสี่แยก
intersection() วิธีช่วยให้คุณสร้างรายการองค์ประกอบที่เหมือนกันระหว่างสองชุด
สมมติว่าเรามีรายชื่อเรียงความที่นักเรียนส่งมา และรายชื่อเรียงความที่ออกแล้ว หากเราต้องการทราบว่าบทความใดที่นักเรียนยังไม่ได้ส่ง เราสามารถใช้วิธีทางแยกได้
นี่คือรหัสที่เราจะใช้:
essays_handed_in = {"Essay #1", "Essay #2"}
essays_issued = {"Essay #1", "Essay #2", "Essay #3"}
due = essays_handed_in.intersection(essays_issued)
print(due)
รหัสของเราส่งคืน:
{'เรียงความ #1', 'เรียงความ #2'}
ในตัวอย่างนี้ เราใช้ intersection() วิธีการหาองค์ประกอบทั้งหมดที่มีอยู่ในทั้ง essays_handed_in และ essays_issued ชุด เรากำหนดผลลัพธ์ของการดำเนินการทางแยกให้กับตัวแปร due ซึ่งเราจะพิมพ์ไปที่คอนโซล
นอกจากนี้เรายังสามารถใช้ & ตัวดำเนินการเพื่อดำเนินการชุดปฏิบัติการทางแยก ดังนั้น ถ้าเราต้องการทำการแยกบนสองชุดของเราจากก่อนหน้านี้ เราสามารถใช้รหัสนี้:
essays_handed_in = {"Essay #1", "Essay #2"}
essays_issued = {"Essay #1", "Essay #2", "Essay #3"}
print(essays_handed_in & essays_issued)
รหัสของเราส่งคืน:
{'เรียงความ #1', 'เรียงความ #2'}
กำหนดส่วนต่าง
difference() วิธีช่วยให้คุณค้นหาองค์ประกอบที่มีอยู่ในชุดหนึ่งที่ไม่มีอยู่ในชุดอื่น
สมมติว่าเราต้องการสร้างรายการเรียงความทั้งหมดที่นักเรียนส่งมาและยังไม่ได้ให้คะแนน เราสามารถทำได้โดยใช้รหัสนี้:
essays_handed_in = {"Essay #1", "Essay #2"}
essays_graded = {"Essay #1"}
final = essays_handed_in.difference(essays_graded)
print(final)
รหัสของเราส่งคืน:
{"เรียงความ #2"}
ในโค้ดนี้ เราใช้ difference() วิธีการหาความแตกต่างระหว่าง essays_handed_in และ essays_graded ชุด หรือเราอาจใช้ - โอเปอเรเตอร์เช่น:
essays_handed_in = {"Essay #1", "Essay #2"}
essays_graded = {"Essay #1"}
print(essays_handed_in - essays_graded)
รหัสของเราส่งคืน:
{"เรียงความ #2"}
ผลลัพธ์เดียวกันจะถูกส่งคืนในรหัสของเรา แต่แทนที่จะใช้ difference() set method เราใช้ - โอเปอเรเตอร์ซึ่งทำการตรวจสอบเพื่อหาความแตกต่างระหว่างสองชุด
บทสรุป
โครงสร้างข้อมูลชุด Python ช่วยให้คุณสามารถจัดเก็บคอลเลกชันของรายการที่ไม่เรียงลำดับได้
แต่ละรายการในชุดต้องไม่ซ้ำกัน ดังนั้นจึงไม่มีรายการที่ซ้ำกัน และเนื้อหาของชุดจะไม่สามารถเปลี่ยนแปลงได้เมื่อเพิ่มเข้าไปในชุดแล้ว
บทช่วยสอนนี้กล่าวถึงโดยอ้างอิงถึงตัวอย่าง พื้นฐานของชุด Python และการดำเนินการหลักที่นำเสนอโดยชุด
เราแค่ขีดข่วนพื้นผิวของสิ่งที่คุณทำได้กับฉากเท่านั้น—ยังมีอีกมากให้คุณสำรวจ—แต่เราได้ครอบคลุมทักษะหลักที่คุณจำเป็นต้องรู้เพื่อทำงานกับฉากอย่างมีประสิทธิภาพ ตอนนี้คุณพร้อมที่จะเริ่มใช้ Python set() วิธีการอย่างมืออาชีพ!
Python ใช้ในสภาพแวดล้อมการพัฒนาระดับมืออาชีพทั่วโลกสำหรับทุกอย่างตั้งแต่การวิเคราะห์ข้อมูลไปจนถึงการพัฒนาเว็บ ดาวน์โหลด แอป Career Karma ฟรี วันนี้เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับเส้นทางอาชีพในการเขียนโปรแกรม Python