פילטר מותאם אישית עזרה בבקשה

AssertionError: פלט לא תקין עבור פונקציה הבודקת האם המספר זוגי assert [0, True, True, True, True] == [0, 2, 4, 6, 8] At index 1 diff: True != 2 Use -v to get the full diff

זאת השגיאה שלי
אני עומד להשתגע איתה בבקשה עזרה

זה יעזור אם תציין מה בדיוק מפריע לך, כי השגיאה די אינפורמטיבית.

הפונקציה שאתה נדרש לכתוב בשאלה הזו אמורה להחליף את פילטר שקיימת בפייתון.
הבעיה כאן שהפילטר שכתבת לא מצליח לברור מתוך רשימה נתונה רק את המספרים הזוגיים.

ונותנים לך פה אפילו דוגמה שאתה יכול להריץ על הפונ’ שכתבת: [0, 2, 4, 6, 8].
תריץ אותה עם הפונ’ שלך ותראה האם אתה מקבל כתוצאה את כל המספרים הזוגיים כפלט מהפונקציה.

כן אני מקבל קלט נכון
לדוגמא ככה זה עם הפילטר:

result = filter(lambda x: x % 2 == 0, list_1)
print(list(result))
הפלט הוא רק מספרים זוגיים
וגם אני הכנסתי לפונקציה שלי רק מספרים זוגיים

את אותה התשובה שקיבלתי בפילטר

לפי ההודעה נראה שיש בעיה במימוש שלך שמשווה בין התוצאה שהפונק’ שלך פולטת לבין לבין התוצאה הרצויה.
שים לב ל-2 הרשימות שמושוות בהודעת השגיאה. בדוק שוב את המימוש שלך

מה הפונקציה filter עושה?

מסננת את הרשימה שנכניס לה לפי הפונקציה שהגדרנו לה.

כן, ומה היא מחזירה?

היא מחזירה את הרשימה המסוננת, לא את הערכים הבוליאנים שלה,- הם תמיד יהיו True אחרי הסינון -, כפי שזה נראה, אתה החזרת את הערכים הבוליאנים.

לא. החזרתי רשימה של מספרים זוגיים
לא יודע למה זה רושם את הערכים בוליאנים רק

מוזמן לשלוח בפרטי כתמונה את השגיאה ואת הקוד :slight_smile:

ממליצה להכניס שורה בסוף הקוד שלך:

if my_filter(parameters) == filter(parameters):
print(“Seems to be working!”)

ואם לא מדפיס Seems to be working!

אז זה לא עובד בדיוק כמו פילטר, ואז להמשיך בהדפסות הפלט וכו מכל אחת מהן לראות בדיוק איפה לא יוצא אותו דבר

לייק 1