Η μέθοδος φίλτρου () κατασκευάζει έναν επαναληπτικό από στοιχεία ενός επαναληπτικού για τα οποία μια συνάρτηση επιστρέφει αληθής
Με απλά λόγια, η filter()
μέθοδος φιλτράρει το δεδομένο επαναλαμβανόμενο με τη βοήθεια μιας συνάρτησης που ελέγχει κάθε στοιχείο στο επαναληπτικό για να είναι αλήθεια ή όχι.
Η σύνταξη της filter()
μεθόδου είναι:
φίλτρο (λειτουργία, επαναλαμβανόμενη)
φίλτρο () Παράμετροι
filter()
Η μέθοδος παίρνει δύο παραμέτρους:
- συνάρτηση - συνάρτηση που ελέγχει εάν στοιχεία μιας επαναλαμβανόμενης επιστροφής είναι αληθής ή ψευδής
Εάν κανένα, η συνάρτηση προεπιλογή στη συνάρτηση ταυτότητας - η οποία επιστρέφει ψευδής εάν κάποια στοιχεία είναι ψευδώς - iterable - επαναληπτικό που πρόκειται να φιλτραριστεί, θα μπορούσε να είναι σύνολα, λίστες, πλειάδες ή κοντέινερ οποιωνδήποτε επαναληπτών
Τιμή επιστροφής από το φίλτρο ()
filter()
Η μέθοδος επιστρέφει έναν επαναληπτικό που πέρασε τον έλεγχο συνάρτησης για κάθε στοιχείο στο iterable.
filter()
μέθοδος ισοδυναμεί με:
# όταν ορίζεται η συνάρτηση (στοιχείο για στοιχείο με δυνατότητα επανάληψης εάν η συνάρτηση (στοιχείο)) # όταν η συνάρτηση είναι Καμία (στοιχείο για στοιχείο σε δυνατότητα επανάληψης εάν στοιχείο)
Παράδειγμα 1: Πώς λειτουργεί το φίλτρο () για επαναλαμβανόμενη λίστα;
# list of letters letters = ('a', 'b', 'd', 'e', 'i', 'j', 'o') # function that filters vowels def filterVowels(letter): vowels = ('a', 'e', 'i', 'o', 'u') if(letter in vowels): return True else: return False filteredVowels = filter(filterVowels, letters) print('The filtered vowels are:') for vowel in filteredVowels: print(vowel)
Παραγωγή
Τα φιλτραρισμένα φωνήεντα είναι: aeio
Εδώ, έχουμε μια λίστα με γράμματα και πρέπει να φιλτράρουμε μόνο τα φωνήεντα σε αυτήν.
Θα μπορούσαμε να χρησιμοποιήσουμε ένα for loop για να βρούμε κάθε στοιχείο στη λίστα γραμμάτων και να το αποθηκεύσουμε σε μια άλλη λίστα, αλλά στο Python, αυτή η διαδικασία είναι ευκολότερη και ταχύτερη με τη χρήση filter()
μεθόδου.
Έχουμε μια λειτουργία filterVowels
που ελέγχει αν ένα γράμμα είναι φωνήεν ή όχι. Αυτή η συνάρτηση μεταβιβάζεται στη filter()
μέθοδο με τη λίστα των γραμμάτων.
filter()
Στη συνέχεια, η μέθοδος μεταβιβάζει κάθε γράμμα στη filterVowels()
μέθοδο για να ελέγξει αν επιστρέφει αληθές ή όχι. Στο τέλος, δημιουργεί μια επανάληψη αυτών που επιστρέφουν αληθινά (φωνήεν).
Επειδή ο επαναληπτής δεν αποθηκεύει τις ίδιες τις τιμές, περνάμε μέσα από αυτό και εκτυπώνουμε φωνήεν ένα προς ένα.
Παράδειγμα 2: Πώς λειτουργεί η μέθοδος φίλτρου () χωρίς τη λειτουργία φίλτρου;
# random list randomList = (1, 'a', 0, False, True, '0') filteredList = filter(None, randomList) print('The filtered elements are:') for element in filteredList: print(element)
Παραγωγή
Τα φιλτραρισμένα στοιχεία είναι: 1 a True 0
Εδώ, έχουμε μια τυχαία λίστα αριθμών, συμβολοσειρών και boolean στο randomList.
Περνάμε το randomList στη filter()
μέθοδο με την πρώτη παράμετρο (λειτουργία φίλτρου) ως Καμία.
Με τη λειτουργία φίλτρου ως Καμία, η συνάρτηση είναι προεπιλεγμένη στη λειτουργία Ταυτότητα και κάθε στοιχείο στην τυχαία λίστα ελέγχεται εάν είναι αλήθεια ή όχι.
Όταν βγαίνουμε στο τελικό φιλτράρισμα της λίστας, λαμβάνουμε τα στοιχεία που είναι αληθή: 1, a, True and '0'
('0' ως συμβολοσειρά ισχύει επίσης).