Python Iterators: Τι είναι το Iterator στο Python και πώς να το χρησιμοποιήσετε;



Σε αυτό το ιστολόγιο για τους επαναληπτές Python, θα κάνουμε μια εις βάθος μελέτη για τους Iterators στο Python και πώς εφαρμόζονται.

Η γλώσσα προγραμματισμού Python έχει κλιμακώσει κάθε πτυχή της καινοτομίας, συμπεριλαμβανομένης της , , , κ.λπ. Ένας από τους πολλούς λόγους για αυτό το κατόρθωμα είναι έννοιες όπως οι Python Iterators, έννοιες σαν αυτές είναι τα δομικά στοιχεία του θριάμβου της Python ως γλώσσα προγραμματισμού. Σε αυτό το άρθρο, θα εξετάσουμε τις ακόλουθες έννοιες για να κατανοήσουμε τους Python Iterators:

Iterators εναντίον Iterable

Ένα αντικείμενο στο Python, που μπορεί να χρησιμοποιηθεί ως Iterable αντικείμενο ονομάζεται Iterable. Αυτό ουσιαστικά σημαίνει ότι η ακολουθία στο αντικείμενο μπορεί να επαναληφθεί. Οι περισσότερες από τις συλλογές Python αρέσει λίστα , , πλειάδα , σκηνικά , και ακόμα εύρος μπορεί να αντιμετωπιστεί ως Iterable.





Τι είναι οι Python Iterators;

Ένας Πύθων Ι τεριέ είναι ένα κοντέινερ που περιέχει έναν μετρήσιμο αριθμό τιμών. Οι τιμές σε ένα κοντέινερ μπορούν να διασταυρωθούν χρησιμοποιώντας Iterators - ιδιαίτερα λίστες.

Εκτός από τη διασταύρωση, οι Iterators παρέχουν επίσης πρόσβαση σε στοιχεία δεδομένων σε ένα κοντέινερ, αλλά δεν αποδίδειεπανάληψηδηλ. όχι χωρίς κάποια σημαντική ελευθερία με αυτήν την έννοια ή με ασήμαντη χρήση της ορολογίας. Το Iterator είναι σχεδόν παρόμοιο με το aδρομέας βάσης δεδομένωνστη συμπεριφορά. Εδώ είναι ένα απλό παράδειγμα του Iterator στο .



my_obj = {'Edureka', 'Python', 'iterator'} iter_obj = iter (my_obj) εκτύπωση (επόμενο (iter_obj))

Παραγωγή: Έντρεκα

Το Iterator είναι οποιοσδήποτε τύπος Python που μπορεί να χρησιμοποιηθεί με το «for in loop».Οποιοδήποτε αντικείμενο πρόκειται να χρησιμοποιηθεί ως Iterator πρέπει να εφαρμόσει τις ακόλουθες μεθόδους.

επαναληπτικά στο python - edureka



1. __iter __ ()

Καλείται για την αρχικοποίηση ενός επαναληπτικού.Θα πρέπει να επιστρέψει ένα αντικείμενο που έχει μια επόμενη ή __επόμενη μέθοδο.

2. __επόμενο __ ()

Η επόμενη μέθοδος του Iterator επιστρέφει την επόμενη τιμή για το Iterable.

Όταν ένα Iterator χρησιμοποιείται με βρόχο «for in», το επόμενο () καλείται σιωπηρά από στο αντικείμενο Iterator. Αυτή η μέθοδος πρέπει να χρησιμοποιεί ένα StopIteration για να σηματοδοτήσει το τέλος της επανάληψης.Μαζί αυτές οι δύο μέθοδοι ονομάζονται Πρωτόκολλο Iterator. Ας προσπαθήσουμε να κατανοήσουμε πώς λειτουργεί το a for loop ως Iterator στο Python.

για i in αντικείμενο: εκτύπωση (i)

Ας καταλάβουμε πώς λειτουργεί το loop ως Iterator.

# δημιουργήστε ένα αντικείμενο iterator από αυτό iterable iter_obj = iter (iterable) # infinite loop while True: try: # get the next item element = next (iter_obj) # κάνε κάτι με στοιχείο εκτός από το StopIteration: # αν το StopIteration είναι ανυψωμένο, διακόψτε από το loop Διακοπή

Τώρα που ξέρουμε, πώς για βρόχο λειτουργεί ως Iterator. Ας καταλάβουμε πώς μπορούμε να εφαρμόσουμε προσαρμοσμένους Iterators στο Python.

Προσαρμοσμένοι Επαναληπτές

Τώρα ας ρίξουμε μια ματιά στο πώς μπορούμε να εφαρμόσουμε προσαρμοσμένους Iterators στο Python. Για να το καταλάβουμε αυτό, θα χρησιμοποιήσουμε ένα παράδειγμα. Σε αυτό το παράδειγμα, θα εφαρμόσουμε τις μεθόδους __iter __ () και __next __ ().

τάξη 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) εκτύπωση (επόμενο ( εκτύπωση (επόμενο (myiter)) εκτύπωση (επόμενο (myiter))

Παραγωγή: ένας

2

3

Τώρα που ξέρουμε πώς μπορούμε να εφαρμόσουμε προσαρμοσμένους Iterators, ας ρίξουμε μια ματιά στους άπειρους Iterators στο Python.

Άπειροι Επαναληπτές

Δεν είναι πάντα υποχρεωτικό να εξαντλείται το αντικείμενο ενός αντικειμένου Iterator. Μπορεί να υπάρχουν άπειροι επαναλήπτες (που δεν τελειώνουν ποτέ). Εδώ είναι ένα βασικό παράδειγμα για την επίδειξη απεριόριστων επαναληπτών.

Το ενσωματωμένο iter ()μπορεί να κληθεί με δύο ορίσματα όπου το πρώτο όρισμα πρέπει να είναι ένα αντικείμενο (συνάρτηση) που μπορεί να κληθεί και το δεύτερο είναι ο φρουρός. Ο Iterator καλεί αυτήν τη λειτουργία έως ότου η επιστρεφόμενη τιμή να είναι ίση με τον φρουρό.

Ας πάρουμε ένα παράδειγμα για να το κατανοήσουμε αυτό

τάξη 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) εκτύπωση (επόμενο ( εκτύπωση (επόμενο (myiter)) εκτύπωση (επόμενο (myiter)) εκτύπωση (επόμενο (myiter)) εκτύπωση (επόμενο (myiter))

Παραγωγή: ένας
2
3
4
5

Στο παραπάνω παράδειγμα, η εκτέλεση θα συνεχιστεί όσο συνεχίζουμε να προσθέτουμε τη δήλωση εκτύπωσης. Για να σταματήσουμε τους άπειρους επαναλήπτες, πρέπει να χρησιμοποιήσουμε τη δήλωση stopIteration.

η ανάμειξη δεδομένων πίνακα δεν λειτουργεί

Διακοπή

Για να σταματήσει η επανάληψη να συνεχίσει για πάντα, χρησιμοποιούμε τη δήλωση StopIteration. Ας το κατανοήσουμε με μερικά παραδείγματα.

τάξη 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: raise StopIteration myclass = MyNumbers () myiter = iter (myclass) για x στο myiter: εκτύπωση (x)

Παραγωγή: ένας
2
3
4
5

Τώρα μόλις το Η συνθήκη είναι λανθασμένη, η εκτέλεση θα μετακινηθεί στο άλλο μπλοκ και η επανάληψη θα σταματήσει. Ας ρίξουμε μια ματιά σε μερικά άλλα παραδείγματα Iterators στο Python.

Παραδείγματα Python Iterator

Ακολουθούν μερικά ακόμη παραδείγματα Iterators στο Python.

my_obj = ['Edureka', 'python', 'iterator'] iter_obj = iter (my_obj) εκτύπωση (επόμενο (iter_obj))

Παραγωγή: Έντρεκα

Σε αυτό το παράδειγμα, χρησιμοποιούμε την πλειάδα ως επαναλαμβανόμενο αντικείμενο.

my_obj = ('Edureka', 'python', 'iterator') iter_obj = iter (my_obj) εκτύπωση (επόμενο (iter_obj))

Παραγωγή: Έντρεκα

Μπορούμε ακόμη και να χρησιμοποιήσουμε τη συμβολοσειρά ως επαναλαμβανόμενο αντικείμενο στο python.

my_obj = 'Edureka' iter_obj = iter (my_obj) εκτύπωση (επόμενο (iter_obj))

Παραγωγή: ΕΙΝΑΙ

Αυτό μας φέρνει στο τέλος αυτού του άρθρου όπου μάθαμε πώς χρησιμοποιούμε τους Python Iterators με παραδείγματα. Ελπίζω να είστε ξεκάθαροι με όλα όσα έχουν μοιραστεί μαζί σας σε αυτό το σεμινάριο.

Εάν βρήκατε αυτό το άρθρο σχετικά με το 'Python Iterators' σχετικό, ρίξτε μια ματιά μια αξιόπιστη διαδικτυακή εταιρεία εκμάθησης με δίκτυο περισσότερων από 250.000 ικανοποιημένων μαθητών σε όλο τον κόσμο.

Είμαστε εδώ για να σας βοηθήσουμε με κάθε βήμα στο ταξίδι σας και να δημιουργήσετε ένα πρόγραμμα σπουδών που έχει σχεδιαστεί για φοιτητές και επαγγελματίες που θέλουν να γίνουν . Το μάθημα έχει σχεδιαστεί για να σας δώσει μια πρώτη αρχή στον προγραμματισμό Python και να σας εκπαιδεύσει τόσο για τις βασικές όσο και για τις προηγμένες ιδέες Python μαζί με διάφορες σαν

Εάν συναντήσετε οποιεσδήποτε ερωτήσεις, μη διστάσετε να κάνετε όλες τις ερωτήσεις σας στην ενότητα σχολίων του 'Python Iterators'. Η ομάδα μας θα χαρεί να απαντήσει.