ภาษาการเขียนโปรแกรม Python ได้ปรับขนาดของนวัตกรรมแต่ละด้านรวมถึง , , เป็นต้นหนึ่งในหลาย ๆ เหตุผลที่ทำให้เกิดความสำเร็จนี้คือแนวคิดเช่น Python Iterators แนวคิดเช่นนี้เป็นส่วนประกอบสำคัญของชัยชนะของ Python ในฐานะภาษาโปรแกรม ในบทความนี้เราจะพูดถึงแนวคิดต่อไปนี้เพื่อทำความเข้าใจ Python Iterators:
- Iterator vs Iterable
- Python Iterator คืออะไร?
- ตัวทำซ้ำที่กำหนดเอง
- Iterators ไม่มีที่สิ้นสุด
- StopIteration
- ตัวอย่าง Python Iterator
Iterators เทียบกับ Iterable
ออบเจ็กต์ใน Python ที่สามารถใช้เป็นอ็อบเจ็กต์ที่สามารถทำซ้ำได้เรียกว่า Iterable โดยทั่วไปหมายความว่าลำดับในออบเจ็กต์สามารถทำซ้ำได้ คอลเลกชัน Python ส่วนใหญ่เช่นไฟล์ รายการ , , ทูเพิล , ชุด และแม้กระทั่ง พิสัย สามารถถือเป็น Iterable
Python Iterator คืออะไร?
Python I Terator คือคอนเทนเนอร์ที่มีค่าจำนวนที่นับได้ ค่าในคอนเทนเนอร์สามารถข้ามผ่านได้โดยใช้ Iterators - โดยเฉพาะรายการ
นอกเหนือจากการส่งผ่านแล้ว Iterators ยังให้การเข้าถึงองค์ประกอบข้อมูลในคอนเทนเนอร์ แต่ไม่ได้ดำเนินการเองการย้ำกล่าวคือไม่ได้มีเสรีภาพอย่างมีนัยสำคัญกับแนวคิดนั้นหรือใช้คำศัพท์เล็กน้อย Iterator เกือบจะคล้ายกับไฟล์เคอร์เซอร์ฐานข้อมูลในพฤติกรรม. นี่คือตัวอย่างง่ายๆของ Iterator ใน .
my_obj = {'Edureka', 'Python', 'iterator'} iter_obj = iter (my_obj) พิมพ์ (ถัดไป (iter_obj))
เอาท์พุต: Edureka
Iterator คือ Python ประเภทใดก็ได้ที่สามารถใช้กับ 'for in loop' ได้อ็อบเจ็กต์ใด ๆ ที่จะใช้เป็น Iterator ต้องใช้เมธอดต่อไปนี้
1. __iter __ ()
เรียกว่าการเริ่มต้นของ Iteratorควรส่งคืนวัตถุที่มีวิธีการถัดไปหรือ __next__
2. __ ต่อ __ ()
วิธีการถัดไปของ Iterator จะส่งคืนค่าถัดไปสำหรับ Iterable
เมื่อใช้ Iterator กับลูป 'for in' next () จะถูกเรียกโดยปริยาย บนวัตถุ Iterator วิธีนี้ควรใช้ StopIteration เพื่อส่งสัญญาณการสิ้นสุดการทำซ้ำทั้งสองวิธีนี้เรียกว่า Iterator Protocol ให้เราพยายามทำความเข้าใจว่า a for loop ทำหน้าที่เป็น Iterator ใน Python ด้วยตัวอย่างอย่างไร
สำหรับฉันในวัตถุ: พิมพ์ (i)
ให้เราเข้าใจวิธีการทำงานของ loop ในฐานะ Iterator
# สร้างออบเจ็กต์ตัววนซ้ำจาก iter_obj = iter ที่ทำซ้ำได้ หยุดพัก
ตอนนี้เรารู้แล้วว่า สำหรับห่วง ทำงานเป็น Iterator ให้เราเข้าใจว่าเราจะใช้ Iterators แบบกำหนดเองใน Python ได้อย่างไร
ตัวทำซ้ำที่กำหนดเอง
ตอนนี้ให้เรามาดูว่าเราสามารถใช้ Iterators แบบกำหนดเองใน Python ได้อย่างไร เพื่อให้เข้าใจสิ่งนี้เราจะใช้ตัวอย่าง ในตัวอย่างนี้เราจะใช้เมธอด __iter __ () และ __next __ ()
class MyNumbers: def __iter __ (self): self.a = 1 return self def __next __ (self): x = self.a self.a + = 1 return x myclass = MyNumbers () myiter = iter (myclass) print (next ( myiter)) พิมพ์ (ถัดไป (myiter)) พิมพ์ (ถัดไป (myiter))
เอาท์พุต: หนึ่ง
2
3
ตอนนี้เรารู้แล้วว่าเราจะใช้ Iterators แบบกำหนดเองได้อย่างไรให้เราดู Iterators ที่ไม่มีที่สิ้นสุดใน Python
Iterators ไม่มีที่สิ้นสุด
ไม่ได้บังคับเสมอไปว่ารายการในออบเจ็กต์ Iterator จะต้องหมด สามารถมี Iterators ได้ไม่สิ้นสุด (ซึ่งไม่สิ้นสุด) นี่คือตัวอย่างพื้นฐานในการสาธิตการวนซ้ำแบบไม่มีที่สิ้นสุด
ในตัว iter ()สามารถเรียกได้ด้วยอาร์กิวเมนต์สองตัวโดยที่อาร์กิวเมนต์แรกต้องเป็นอ็อบเจ็กต์ (ฟังก์ชัน) ที่สามารถเรียกได้และอันดับที่สองคือเซนทิเนล Iterator เรียกใช้ฟังก์ชันนี้จนกว่าค่าที่ส่งคืนจะเท่ากับ Sentinel
ให้เราเป็นตัวอย่างเพื่อทำความเข้าใจสิ่งนี้
class MyNumbers: def __iter __ (self): self.a = 1 return self def __next __ (self): x = self.a self.a + = 1 return x myclass = MyNumbers () myiter = iter (myclass) print (next ( พิมพ์ (myiter)) พิมพ์ (ถัดไป (myiter)) พิมพ์ (ถัดไป (myiter)) พิมพ์ (ถัดไป (myiter))
เอาท์พุต: หนึ่ง
2
3
4
5
ในตัวอย่างข้างต้นการดำเนินการจะดำเนินต่อไปตราบเท่าที่เรายังคงเพิ่มคำสั่งพิมพ์ ในการหยุด Iterators ที่ไม่มีที่สิ้นสุดเราจำเป็นต้องใช้คำสั่ง stopIteration
oracle pl sql ข้อผิดพลาดในการจัดการแนวทางปฏิบัติที่ดีที่สุด
StopIteration
หากต้องการหยุดการวนซ้ำไม่ให้เกิดขึ้นตลอดไปเราใช้คำสั่ง StopIteration ให้เราเข้าใจสิ่งนี้ด้วยตัวอย่างบางส่วน
class MyNumbers: def __iter __ (self): self.a = 1 return self def __next __ (self): if self.a & ampampamplt = 5: x = self.a self.a + = 1 return x else: เพิ่ม StopIteration myclass = MyNumbers () myiter = iter (myclass) สำหรับ x ใน myiter: print (x)
เอาท์พุต: หนึ่ง
2
3
4
5
ตอนนี้ทันทีที่ เงื่อนไขเป็นเท็จการดำเนินการจะย้ายไปที่บล็อกอื่นและการทำซ้ำจะหยุดลง ตอนนี้เรามาดูตัวอย่างอื่น ๆ ของ Iterators ใน Python
ตัวอย่าง Python Iterator
นี่คือตัวอย่างเพิ่มเติมบางส่วนของ Iterators ใน Python
my_obj = ['Edureka', 'python', 'iterator'] iter_obj = iter (my_obj) พิมพ์ (ถัดไป (iter_obj))
เอาท์พุต: Edureka
ในตัวอย่างนี้เราใช้ทูเพิลเป็นวัตถุที่ทำซ้ำได้
my_obj = ('Edureka', 'python', 'iterator') iter_obj = iter (my_obj) พิมพ์ (ถัดไป (iter_obj))
เอาท์พุต: Edureka
เรายังสามารถใช้สตริงเป็นวัตถุที่ทำซ้ำได้ใน python
my_obj = 'Edureka' iter_obj = iter (my_obj) พิมพ์ (ถัดไป (iter_obj))
เอาท์พุต: คือ
สิ่งนี้ทำให้เรามาถึงตอนท้ายของบทความนี้ซึ่งเราได้เรียนรู้วิธีที่เราใช้ Python Iterators พร้อมตัวอย่าง ฉันหวังว่าคุณจะชัดเจนกับทุกสิ่งที่แบ่งปันกับคุณในบทแนะนำนี้
หากคุณพบบทความเกี่ยวกับ“ Python Iterators” ที่เกี่ยวข้องโปรดดู บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้พร้อมเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก
เราพร้อมช่วยเหลือคุณในทุกขั้นตอนในการเดินทางและจัดทำหลักสูตรที่ออกแบบมาสำหรับนักเรียนและผู้เชี่ยวชาญที่ต้องการเป็น . หลักสูตรนี้ออกแบบมาเพื่อให้คุณเริ่มต้นในการเขียนโปรแกรม Python และฝึกอบรมแนวคิด Python ทั้งหลักและขั้นสูงพร้อมกับ ชอบ
หากคุณพบคำถามใด ๆ อย่าลังเลที่จะถามคำถามทั้งหมดของคุณในส่วนความคิดเห็นของ“ Python Iterators” ทีมงานของเรายินดีที่จะตอบ