הפונקציה המובנית filter() של Python היא גם חזקה; לביצוע הליך סינון נתונים על רצפים כמו רשימות, tuples ומיתרים. הפונקציה filter() משמשת כדי להחיל פונקציה על כל רכיב של איטרבל (כמו רשימה או tuple) ולהחזיר איטרבל אחר המכיל רק את האלמנטים שעבורם הפונקציה מחזירה את True. לאורך השורות הללו, filter() מאפשר לנו לסנן אלמנטים מקיבוץ על סמך תנאי כלשהו. הארגומנט הראשון יכול להיות None אם הפונקציה אינה זמינה ומחזירה רק אלמנטים שהם True.
תחביר:
filter (function, iterable)
פרמטרים
פוּנקצִיָה: זו פונקציה. אם מוגדר ל-None מחזיר רק אלמנטים שהם True.
איטרציה: כל רצף שניתן לחזור עליו כמו רשימה, tuple ומחרוזת.
שני הפרמטרים נדרשים.
כיצד להפנות מצביע ב-c
לַחֲזוֹר
זה מחזיר את אותו הדבר כמו שהוחזר על ידי הפונקציה.
בוא נראה כמה דוגמאות לפונקציית filter() כדי להבין את הפונקציונליות שלה.
Python filter() דוגמה לפונקציה 1
דוגמה פשוטה זו מחזירה ערכים גבוהים מ-5 באמצעות פונקציית הסינון. ראה את הדוגמה למטה.
קריאה מקובץ csv ב-java
קוד
# Python filter() function example def filterdata(x): if x>5: return x # Calling function result = filter(filterdata,(1,2,6)) # Displaying result print(list(result))
תְפוּקָה:
[6]
הקוד מגדיר פונקציה בשם filterdata שלוקחת ארגומנט x בודד. בפונקציה זו, אנו בודקים בהנחה ש-x גדול מ-5, ובתנאי שזה נכון, נדפיס את x. לאחר מכן, אנו קוראים לפונקציה filter(), ומעבירים ב-filterdata כארגומנט הראשי ו-tuple (1, 2, 6) כארגומנט העוקב. הפונקציה filter() מחילה את הפונקציה filterdata() על כל רכיב של tuple ומחזירה איטרטור המכיל רק את האלמנטים שממלאים את התנאי x > 5. לבסוף, אנו ממירים את האיטרטור לרשימה תוך שימוש בפונקציה list() ולהדפיס את התוצאה.
להלן כמה דוגמאות נוספות כיצד להשתמש בשיטת filter() ב- Python:
דוגמה 2:
סנן מחרוזות ריקות מרשימה:
קוד
# Python filter() function example strings = [ '', 'hello', '', 'world', '' ] # Using filter() to remove empty strings from the list result = list(filter(lambda x: x != '', strings)) # Printing the result print(result)
תְפוּקָה:
[ 'hello', 'world' ]
בדוגמה זו, פונקציית lambda בודקת במקרה שכל מחרוזת אינה ריקה על ידי בדיקה בהנחה שהיא שווה ערך למחרוזת הריקה (''). הפונקציה filter() מחזירה איטרבל נוסף המכיל רק את המחרוזות הלא ריקות.
דוגמה 3:
סנן מספרים שליליים מרשימה:
קוד
# Python filter() function example numbers = [ 1, -2, 3, -4, 5, -6 ] # Using filter() to remove negative numbers from the list result = list(filter(lambda x: x >= 0, numbers)) # Printing the result print(result)
תְפוּקָה:
מערך אובייקטים ב-java
[1, 3, 5]
בדוגמה זו, פונקציית למבדה בודקת בהנחה שכל מספר אינו שלילי על ידי בדיקה במקרה שהוא בולט יותר או שווה ערך לאפס (0). הפונקציה filter() מחזירה איטרנס נוסף המכיל רק את המספרים הלא שליליים.
דוגמה 4:
סנן כפילויות מרשימה:
קוד
כיצד לבחור עמודות מטבלאות שונות ב-sql
# Python filter() function example numbers = [ 1, 2, 3, 2, 4, 3, 5 ] # Using filter() to remove duplicate numbers from the list result = list(filter(lambda x: numbers.count(x) == 1, numbers)) # Printing the result print(result)
תְפוּקָה:
[ 1, 4, 5 ]
בדוגמה זו, פונקציית lambda בודקת במקרה שכל מספר מופיע רק פעם אחת ברשימת המספרים על ידי ספירה באיזו תדירות הוא מופיע (numbers.count(x)) ובדיקה במקרה שהספירה שווה ל- 1. הפונקציה filter() מחזירה איטרבל נוסף המכיל רק את המספרים הייחודיים.
הערה: זה משמעותי שב-Python 3, הפונקציה filter() מחזירה איטרבל, וזה מרמז שאתה באמת רוצה לשנות אותה לחלוטין לרשימה (כפי שמוצג בדוגמאות למעלה) כדי לכלול אותה כרשימה. עם זאת, ב- Python 2, הפונקציה filter() מחזירה רשימה כמובן.
סיכום:
לבסוף, הפונקציה filter() היא כלי רב עוצמה למניפולציה של נתונים ב- Python. על ידי סינון איטרנס על סמך תנאי מוגדר מראש, אתה יכול להפריד במהירות וביעילות את הנתונים שאתה באמת רוצה. אתה יכול גם להשתמש ב-filter() בשילוב עם פונקציות אחרות של Python כדי לבצע מניפולציות נתונים מביכות יותר.