Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Python Functional Python Functional Workhorses Filter

nakalkucing
nakalkucing
12,964 Points

Filter Challenge Task 2 of 2 Bummer: dt_2012 isn't a filter!

I am completely stuck on this challenge. I know my task 1 code doesn't allow dt_2012 to filter through anything, but I can't figure out how to make it filter friendly.

Here are the instructions:

Task 1: Write a function named is_2012 that accepts a single argument and returns whether that argument's year attribute is equal to 2012.

Task 2: Now create a variable named dt_2012 that uses filter() and is_2012 to return only the datetimes from dates that are from the year 2012.

Thanks in advance! :)

filters.py
import datetime

dates = [
    datetime.datetime(2012, 12, 15),
    datetime.datetime(1987, 8, 20),
    datetime.datetime(1965, 2, 28),
    datetime.datetime(2015, 4, 29),
    datetime.datetime(2012, 6, 30),
]

def is_2012(argument):
    if argument.year == 2012:
        return True

def dt_2012(dates):
    return filter(is_2012, dates)

1 Answer

Steven Parker
Steven Parker
231,248 Points

Note that instruction say "Now create a variable named dt_2012 ..."

You're calling the filter function correctly, but you're defining another function named "dt_2012" instead of creating a variable with that name and assigning the filter result to it.

nakalkucing
nakalkucing
12,964 Points

Thanks Steven Parker! I can't believe I missed that. :D