คิว Python เป็นไลบรารีในตัวที่ช่วยให้คุณสามารถสร้างรายการที่ใช้กฎ FIFO โดยเข้าก่อนออกก่อน Python deque ใช้กฎที่ตรงกันข้าม คิว LIFO หรือเข้าก่อนออกก่อน ทั้งสองทำงานบนสแต็กและคิว
เมื่อคุณทำงานใน Python คุณอาจต้องการสร้างคิวของรายการแทนที่จะเป็นรายการ ตัวอย่างเช่น สมมติว่าคุณกำลังเขียนโปรแกรมที่ติดตามการลงทะเบียนเข้าร่วมการประชุม เมื่อเราเพิ่มใครเข้าไปในรายการ คุณต้องการให้พวกเขาอยู่ด้านหลังคิว จากนั้นคุณต้องการให้พวกเขาเข้าแถวต่อเนื่องจากคนที่อยู่ด้านหน้าเริ่มเข้ามา
มีไลบรารี่ในตัวใน Python ที่ออกแบบมาเพื่อช่วยคุณเกี่ยวกับปัญหาประเภทนี้:คิว คิวมีความคล้ายคลึงกับสแต็คใน Python โดยมีความแตกต่างหลักกับคิว คุณจะลบรายการที่เพิ่มเข้ามาล่าสุด ในทางกลับกัน คุณลบรายการที่เพิ่มล่าสุดในสแต็ก
ในบทช่วยสอนนี้ เราจะอธิบายพื้นฐานของคิวใน Python และวิธีการใช้งาน
คิวไพรเมอร์
มีประโยชน์เมื่อทำงานกับรายการ Python คิวมีประโยชน์เมื่อคุณต้องการดึงสิ่งต่าง ๆ ออกจากรายการตามลำดับที่คุณใส่ เพื่อใช้ตัวอย่างก่อนหน้านี้ เมื่อคุณอยู่ในการประชุม คุณควรวางไว้ที่ ด้านหลังของบรรทัดเมื่อคุณลงทะเบียนครั้งแรก แต่เมื่อคนในรายชื่อเริ่มเข้ามา คุณควรเลื่อนขึ้นไปอยู่ในรายชื่อ
คิวจะแตกต่างจากอาร์เรย์และรายการในคิวที่ไม่ใช่การเข้าถึงแบบสุ่ม ข้อมูลที่จัดเก็บไว้ในคิวมีลำดับเฉพาะ ดังนั้นหากคุณต้องการเพิ่มรายการในคิว รายการนั้นจะถูกเพิ่มไปยังส่วนท้าย นี่เรียกว่า first-in
, first-out
หรือคิว FIFO สั้นๆ
ใน Python คุณสามารถใช้รายการมาตรฐานเป็นคิวได้ อย่างไรก็ตาม รายการอาจทำงานช้าได้หากคุณแทรกและลบองค์ประกอบ เนื่องจากการเปลี่ยนแปลงองค์ประกอบที่จุดเริ่มต้นของรายการจำเป็นต้องย้ายองค์ประกอบอื่นๆ ในรายการลง ดังนั้น หากคุณต้องการใช้รายการเข้าก่อน-ออกก่อน คุณควรใช้คิว
คิวไพทอน
ดังนั้นคุณจะใช้งานคิวใน Python ได้อย่างไร ในการทำเช่นนั้น เราต้องใช้ไลบรารีคิวในตัว โมดูลคิวประกอบด้วยคลาสที่มีประโยชน์มากมายสำหรับคิว แต่สำหรับบทช่วยสอนนี้ เราจะเน้นที่ queue.Queue
ชั้นเรียน
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
สมมติว่าเรากำลังสร้างโปรแกรมที่ติดตามคนที่ต้องการไปดูหนังล่าสุดที่โรงละครท้องถิ่น เราสามารถใช้คิวเพื่อติดตามรายชื่อผู้รอของผู้ที่ต้องการชมภาพยนตร์ได้
อันดับแรก เราต้องกำหนดคลาสคิวของเรา เราสามารถทำได้โดยใช้รหัสต่อไปนี้:
from queue import Queue waitlist = Queue()
ตอนนี้เราพร้อมที่จะสร้างคิวของเราแล้ว put()
ฟังก์ชันช่วยให้ข้อมูลสามารถ put
เข้าคิว. ในรหัสด้านล่าง เราจะเพิ่มคนห้าคนในรายชื่อผู้รอที่เพิ่งลงชื่อสมัครใช้เพื่อดูภาพยนตร์:
waitlist.put('Erin') waitlist.put('Samantha') waitlist.put('Joe') waitlist.put('Martin') waitlist.put('Helena')
ตอนนี้เราได้เพิ่มชื่อห้าชื่อของเราในคิวแล้ว Erin อยู่ในคิวของเราก่อน ตามด้วย Samantha ไปเรื่อยๆ จนกว่าเราจะไปถึง Helena ซึ่งเป็นคนสุดท้าย เราสามารถสาธิตได้โดยใช้ get()
ฟังก์ชัน เช่น
print(waitlist.get())
รหัสของเราส่งคืนดังต่อไปนี้:
Erin
อย่างที่คุณเห็น Erin เป็นคนแรกในคิวของเรา หากเราต้องการพิมพ์ชื่อสองชื่อแรกที่อยู่ในคิว เราจะใช้ get()
ฟังก์ชั่นสองครั้ง:
print(waitlist.get()) print(waitlist.get())
รหัสของเราส่งคืนดังต่อไปนี้:
Erin Samantha
ตัวอย่าง Python Deque
แต่ถ้าเราต้องการเพิ่มและลบจำนวนรายการออกจากปลายคิวของเราล่ะ นี่คือที่มาของฟังก์ชัน deque โดยการใช้ deque เราสามารถสร้างคิวแบบ double-end ที่เราสามารถเพิ่มและลบองค์ประกอบจากจุดเริ่มต้นหรือจุดสิ้นสุดของคิว Deques เป็น last-in
, first-out
, หรือ LIFO สั้นๆ
ลองใช้ตัวอย่างเดียวกันกับด้านบน:การจัดเก็บชื่อในรายการรอสำหรับภาพยนตร์ ประการแรก เราจะประกาศฟังก์ชัน deque ของเรา:
from collections import deque waitlist = deque()
ตอนนี้เราได้เริ่มต้น deque ของเราแล้ว เราสามารถเพิ่มรายชื่อรอใน deque ของเราได้:
waitlist.append('Erin') waitlist.append('Samantha') waitlist.append('Joe') waitlist.append('Martin') waitlist.append('Helena')
อย่างที่คุณเห็น เราใช้ append()
ฟังก์ชั่นเพื่อวางรายการลงในคิวของเรา หากต้องการดูค่าที่เก็บไว้ในรายการรอ เราสามารถใช้รหัสต่อไปนี้:
print(waitlist)
รหัสของเราส่งคืนดังต่อไปนี้:
deque(['Erin', 'Samantha', 'Joe', 'Martin', 'Helena'])
อย่างที่คุณเห็น ข้อมูลของเราถูกจัดเก็บในลำดับที่เราแทรกลงใน deque ของเรา แต่ถ้าเราต้องการลบรายการแรกออกจากคิวของเราล่ะ เราสามารถใช้ popleft()
ทำหน้าที่บรรลุเป้าหมายนี้ นี่คือตัวอย่าง:
waitlist.popleft() print(waitlist)
รหัสของเราได้ลบรายการแรกในรายการของเรา — Erin
— และคืนค่าต่อไปนี้:
deque(['Samantha', 'Joe', 'Martin', 'Helena'])
หากเราต้องการลบรายการทั้งหมดใน deque เราสามารถใช้ฟังก์ชัน clear():
deque.clear() print(waitlist)
ผลลัพธ์ของรหัสของเรามีดังนี้:
deque([])
อย่างที่คุณเห็น deque ของเราว่างเปล่า แต่วัตถุยังคงอยู่
บทสรุป
แค่นั้นแหละ! ในบทความนี้ เราได้พูดถึงว่าคิวเป็นโครงสร้างข้อมูลประเภทหนึ่งที่ช่วยให้คุณใช้วิธีการจัดเก็บข้อมูลเข้าก่อนออกก่อนเพื่อจัดเก็บข้อมูลได้อย่างไร ตัวอย่างการใช้คิวคือเก็บรายการรอสำหรับผลิตภัณฑ์ใหม่
เรายังคุยกันถึงวิธีที่คุณสามารถใช้ deque เพื่อสร้างคิวแบบ double-end ซึ่งคุณสามารถเพิ่มและลบองค์ประกอบออกจากคิวของคุณได้ ตอนนี้คุณพร้อมที่จะเริ่มเขียนคำถามและข้อโต้แย้งของคุณเองแล้ว!
Python ใช้ในสภาพแวดล้อมการเขียนโปรแกรมระดับมืออาชีพที่หลากหลาย ดาวน์โหลด แอป Career Karma ฟรี วันนี้เพื่อเรียนรู้ว่า Python สามารถช่วยให้คุณก้าวไปสู่อาชีพในฝันในด้านเทคโนโลยีได้อย่างไร!