Το Itertools είναι ένα από τα πιο χρήσιμα modules που παρέχει η Python. Οι λειτουργίες του καθιστούν εύκολη την εργασία με λίστες και πίνακες. Είτε χρειάζεστε όλες τις μεταθέσεις των τιμών σε έναν πίνακα είτε θέλετε να ομαδοποιήσετε χαρακτήρες από μια συμβολοσειρά, το Itertools μπορεί να σας βοηθήσει.
Η σύνταξη του κώδικα για τέτοιες συνηθισμένες περιπτώσεις μπορεί να είναι κουραστική και επιρρεπής σε σφάλματα. Ως εκ τούτου, οι προγραμματιστές έχουν δημιουργήσει βιβλιοθήκες για να κάνουν όλα αυτά για εσάς. Μπορείτε να χρησιμοποιήσετε αυτές τις λειτουργίες εισάγοντας το Itertools. Σε αυτό το άρθρο, θα μάθετε για τη λειτουργική μονάδα Itertools στην Python και τις λειτουργίες της.
Το επίσημο Πύθων Η τεκμηρίωση εξηγεί ότι το Itertools περιέχει κώδικα για επαναλήψεις κτιρίων. Αυτή η ενότητα παρέχει γρήγορες και αποτελεσματικές λειτουργίες για εργασία με λίστες και πίνακες.
Πριν χρησιμοποιήσετε αυτήν την ενότητα, πρέπει να την εισαγάγετε χρησιμοποιώντας την ακόλουθη σύνταξη:
εισαγωγή itertools
Υπάρχουν τρεις διαφορετικοί τύποι επαναλήψεων που υπάρχουν σε αυτήν την ενότητα.
- Άπειροι επαναλήπτες
- Συνδυαστικοί επαναληπτικοί
- Τερματισμός επαναλήψεων
Άπειροι επαναλήπτες
Οι άπειροι επαναλήπτες μπορούν να εκτελέσουν έναν βρόχο άπειρα. Αυτές οι λειτουργίες εκτελούνται συχνότερα χρησιμοποιώντας a για βρόχο. Υπάρχουν τρεις άπειροι επαναλήπτες.
1. καταμέτρηση (έναρξη, βήμα)
ο μετρώ() η συνάρτηση παίρνει δύο παραμέτρους: το αρχή και το βήμα. Ο βρόχος ξεκινά από την τιμή έναρξης και επιστρέφει τιμές που αυξάνονται κατά βήμα, το οποίο είναι προεπιλεγμένο σε 1. Εξετάστε το παράδειγμα που δίνεται παρακάτω: ο βρόχος ξεκινά από το 2 και θα προσθέτει 2 κάθε φορά. Ο βρόχος σπάει όταν η τιμή του Εγώ γίνεται 10.
για i στο itertools.count (2,2):
αν i == 10:
Διακοπή
αλλού:
εκτύπωση (i, end=" ")
Παραγωγή:
2 4 6 8
2. επανάληψη (αριθμός, φορές σε επανάληψη)
ο επαναλαμβάνω() η συνάρτηση δέχεται δύο παραμέτρους. Η πρώτη είναι μια τιμή που παράγει η συνάρτηση επανειλημμένα. Η δεύτερη παράμετρος είναι πόσες φορές πρέπει να επαναληφθεί ο αριθμός. Εάν δεν καθορίσετε τη δεύτερη παράμετρο, ο βρόχος θα τρέχει άπειρα.
για i στο itertools.repeat (2,5):
εκτύπωση (i, end=" ")
Παραγωγή:
2 2 2 2 2
3. κύκλος (εισαγωγή)
ο κύκλος() Η συνάρτηση επαναλαμβάνεται μέσω της εισόδου και εκτυπώνει μεμονωμένα στοιχεία με μια δεδομένη σειρά. Όταν φτάσει στο τέλος της εισαγωγής του, κύκλος ξαναρχίζει από την αρχή.
c = 0
var = "12345"
για i στο itertools.cycle (var):
αν c == 12:
Διακοπή
αλλού:
c = c + 1
εκτύπωση (i, end=" ")
Παραγωγή:
1 2 3 4 5 1 2 3 4 5 1 2
Συνδυαστικοί επαναληπτικοί
Οι συνδυαστικοί επαναλήπτες παρέχουν συναρτήσεις για την εκτέλεση μεταθέσεων, συνδυασμών και καρτεσιανών προϊόντων.
1. προϊόν (εισαγωγή)
ο προϊόν() Η συνάρτηση υπολογίζει το καρτεσιανό γινόμενο της καθορισμένης εισόδου. Έχει μια παράμετρο επανάληψης που υπολογίζει το καρτεσιανό γινόμενο ενός επαναλήπτη με τον εαυτό του. Είναι μια προαιρετική παράμετρος.
πίνακας = [1,2,3]
εκτύπωση (λίστα (itertools.product (πίνακας, επανάληψη=2)))
string = "ABC"
εκτύπωση (λίστα (itertools.product (string, "XYZ")))
Παραγωγή:
Παράδειγμα 1 [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
Παράδειγμα 2 [('A', 'X'), ('A', 'Y'), ('A', 'Z'), ('B', 'X'), ('B', 'Y' '), ('B', 'Z'), ('C', 'X'), ('C', 'Y'), ('C', 'Z')]
2. μεταθέσεις (εισαγωγή, μέγεθος)
Αυτή η συνάρτηση επιστρέφει μια πλειάδα από όλες τις μεταθέσεις του δεδομένου iterable. Δέχεται δύο παραμέτρους: το iterable και το μέγεθος της ομάδας. Εάν το μέγεθος της ομάδας δεν έχει καθοριστεί, θα σχηματίσει ομάδες του ίδιου μήκους με τον ίδιο τον επαναληπτικό.
arr = [1,2,3,4]
εκτύπωση (λίστα (itertools.permutations (arr, 2)))
Παραγωγή:
[(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)]
Σχετίζεται με: Λειτουργίες Python που πρέπει να γνωρίζετε
3. συνδυασμοί (είσοδος, μήκος)
ο συνδυασμοί() η συνάρτηση βοηθά στον υπολογισμό των συνδυασμών του δεδομένου επαναλήπτη. Σημειώστε ότι αυτή η συνάρτηση διατηρεί τη σειρά των στοιχείων της εισαγωγής της. Ενώ μεταθέσεις περιλαμβάνει τιμές που διαφέρουν μόνο κατά σειρά, συνδυασμοί παράγει μοναδικές αξίες.
arr = [1,2,3,4]
εκτύπωση (λίστα (itertools.combinations (arr, 3)))
Παραγωγή:
[(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)]
Τερματισμός επαναλήψεων
Οι επαναλήπτες τερματισμού παράγουν έξοδο με βάση τις συνθήκες που δίνονται στην είσοδο. Μπορείτε να το καταλάβετε καλύτερα από μερικά παραδείγματα συναρτήσεων.
1. συσσωρεύω (εισαγωγή, τελεστής)
ο συσσωρεύω() Η συνάρτηση δέχεται δύο ορίσματα: το iterable και έναν τελεστή. Παράγει έξοδο εφαρμόζοντας τον τελεστή σε ένα αθροιστικό σύνολο και κάθε στοιχείο εισόδου με τη σειρά του. Ο τελεστής είναι ένα προαιρετικό όρισμα. Εάν δεν το περάσετε, αυτή η λειτουργία θα εκτελέσει προσθήκη.
φορέας εισαγωγής
arr = [1,2,3,4]
εκτύπωση (λίστα (itertools.accumulate (arr)))
εκτύπωση (λίστα (itertools.accumulate (arr, operator.sub)))
Παραγωγή:
[1, 3, 6, 10]
[1, -1, -4, -8]
2. starmap (συνάρτηση, είσοδος)
ο starmap() Η συνάρτηση δέχεται μια συνάρτηση και μια λίστα πλειάδων ως ορίσματά της. Υπολογίζει τις επιστρεφόμενες τιμές εφαρμόζοντας τη συνάρτηση σε κάθε πλειάδα στην είσοδο. Στο παράδειγμα που δίνεται, αυτή η συνάρτηση θα υπολογίσει τη μέγιστη τιμή κάθε πλειάδας και θα την επιστρέψει σε έναν πίνακα.
arr = [(1,2,3), (4,5,6), (7,8,9)]
εκτύπωση (λίστα (itertools.starmap (μέγ., arr)))
Παραγωγή:
[3, 6, 9]
Σχετίζεται με: Πώς να δημιουργήσετε και να χρησιμοποιήσετε πλειάδες στην Python
3. filterfalse (συνάρτηση)
ο filterfalse() Η συνάρτηση επιστρέφει τιμές που δεν πληρούν τη συνθήκη της συνάρτησης που πέρασε. Ο κωδικός που δίνεται παρακάτω αφαιρεί όλες τις περιττές τιμές.
arr = [1,2,3,4]
εκτύπωση (λίστα (itertools.filterfalse (λάμδα x: x % 2 != 0, arr)))
Παραγωγή:
[2, 4]
Συνεχίστε το ταξίδι κωδικοποίησης Python
Τώρα που μάθατε για τη λειτουργική μονάδα Itertools, ήρθε η ώρα να εξερευνήσετε άλλες λειτουργικές μονάδες Python. Η Python διαθέτει λειτουργικές μονάδες και βιβλιοθήκες για ένα ευρύ σύνολο εργασιών. Περιλαμβάνουν προηγμένες έννοιες όπως ο μετασχηματισμός Fourier και εφαρμογές AI/ML.
Ορισμένες ενότητες είναι πιο περίπλοκες από άλλες και θα χρειαστεί περισσότερος χρόνος για να τις μάθουν. Η ενότητα Tkinter σάς δίνει τη δυνατότητα να δημιουργήσετε πλήρεις εφαρμογές GUI στην Python.
Βελτιώστε τις δεξιότητές σας στο Python Tkinter με αυτό το έργο για αρχάριους.
Διαβάστε Επόμενο
- Προγραμματισμός
- Προγραμματισμός
- Πύθων

Ο Unnati είναι ένας ενθουσιώδης προγραμματιστής full stack. Της αρέσει να κατασκευάζει έργα χρησιμοποιώντας διάφορες γλώσσες προγραμματισμού. Στον ελεύθερο χρόνο της, της αρέσει να παίζει κιθάρα και είναι λάτρης της μαγειρικής.
Εγγραφείτε στο ενημερωτικό μας δελτίο
Εγγραφείτε στο ενημερωτικό μας δελτίο για συμβουλές τεχνολογίας, κριτικές, δωρεάν ebook και αποκλειστικές προσφορές!
Κάντε κλικ εδώ για να εγγραφείτε