บ่อยครั้งเมื่อคุณทำงานกับข้อมูล คุณจะต้องการจัดเก็บรายการข้อมูลที่ไม่สามารถมีค่าที่ซ้ำกันได้ และค่าที่ไม่สามารถเปลี่ยนแปลงค่าได้ ตัวอย่างเช่น หากคุณกำลังสร้างรายการรหัสการซื้อที่ร้านขายของชำ คุณต้องการให้แต่ละรหัสไม่ซ้ำกัน และคุณไม่ต้องการให้ใครเปลี่ยนค่าในรายการของคุณได้
นั่นคือที่มาของชุดวัตถุ 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