Python Iterators: Iterator ใน Python คืออะไรและจะใช้อย่างไร?



ในบล็อกนี้เกี่ยวกับตัววนซ้ำ Python เราจะทำการศึกษาเชิงลึกเกี่ยวกับ Iterators ใน Python และวิธีการใช้งาน

ภาษาการเขียนโปรแกรม Python ได้ปรับขนาดของนวัตกรรมแต่ละด้านรวมถึง , , เป็นต้นหนึ่งในหลาย ๆ เหตุผลที่ทำให้เกิดความสำเร็จนี้คือแนวคิดเช่น Python Iterators แนวคิดเช่นนี้เป็นส่วนประกอบสำคัญของชัยชนะของ Python ในฐานะภาษาโปรแกรม ในบทความนี้เราจะพูดถึงแนวคิดต่อไปนี้เพื่อทำความเข้าใจ Python Iterators:

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 ต้องใช้เมธอดต่อไปนี้

ตัววนซ้ำใน python - edureka



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” ทีมงานของเรายินดีที่จะตอบ