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 Dates and Times in Python (2014) Let's Build a Timed Quiz App Timestamp Ordering

Using sorted() versus list.sort()

For this task, when I used times.sort() instead of sorted(times) I got the following error: 'NoneType' object is not subscriptable. I was wondering why times.sort() does not work. The code below passed the challenge.

timestamp.py
# If you need help, look up datetime.datetime.fromtimestamp()
# Also, remember that you *will not* know how many timestamps
# are coming in.

import datetime


def timestamp_oldest(*args):
    times = []
    for arg in args:
        times.append(datetime.datetime.fromtimestamp(arg))
    oldest = sorted(times)
    return oldest[0]

1 Answer

Steven Parker
Steven Parker
229,732 Points

The .sort() function does not return a value.

It directly sorts the list you apply it to. But you could do this:

    # ...same up through the loop...
    times.sort()
    return times[0]

Thanks for the clarification! Do you know why the following does not work?

oldest = times.sort()
return oldest[0]
Steven Parker
Steven Parker
229,732 Points

Yes, just as I said, it's because the .sort() function does not return a value:

oldest = times.sort()  # this sorts times, but sets oldest to None
return oldest[0]       # so this tries to subscript "None" (causing an error)