Συνάρτηση filter για φιλτράρισμα αντικειμένων στην Python
Ας μελετήσουμε τώρα τη συνάρτηση filter.
Επιτρέπει το φιλτράρισμα στοιχείων λιστών
και άλλων επαναληπτών αντικειμένων βάσει κάποιας
συνθήκης. Ως πρώτη παράμετρο δέχεται μια
συνάρτηση, η οποία ορίζει τη συνθήκη ελέγχου.
Στη δεύτερη παράμετρο καθορίζεται η λίστα,
τα στοιχεία της οποίας θα φιλτραριστούν.
Εάν η συνάρτηση επιστρέφει True, τότε
το στοιχείο παραμένει στη νέα λίστα. Εάν
επιστρέφεται False, τότε το στοιχείο δεν
θα εισέλθει στη λίστα.
Ας υποθέσουμε ότι έχουμε μια λίστα:
lst = [1, 2, 3, 4, 5, 6]
Ας αφήσουμε σε αυτήν μόνο ζυγούς αριθμούς.
Για αυτό, χρησιμοποιώντας μια lambda συνάρτηση, ας γράψουμε
να διαιρείται ο αριθμός που περνάει στην παράμετρό της
με το: 2 χωρίς υπόλοιπο:
res = filter(lambda num: num % 2 == 0, lst)
print(list(res))
Μετά την εκτέλεση του κώδικα θα επιστραφεί μια νέα λίστα:
[2, 4, 6]
Δίνεται μια λίστα με αριθμούς:
lst = [1, 2, 3, 4, 5]
Γράψτε σε μια νέα λίστα μόνο τους μονούς αριθμούς από αυτήν τη λίστα.
Δίνεται μια λίστα με συμβολοσειρές:
lst = ['abcd', 'ab', 'c', 'de', 'bc']
Γράψτε σε μια νέα λίστα μόνο τις συμβολοσειρές
των οποίων το μήκος είναι ίσο με 2.