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 Sorting

sorted() and itemgetter() issues

I do not know what the question is looking for. I am working on Python.
The following question: Challenge Task 2 of 2

Now create a variable named sorted_fruit that uses sorted() and itemgetter() to sort fruit_list by the second item in each tuple.

I entered the following into a separate pycharm IDE and it works:

import operator

fruit_list = [ ('apple', 2), ('banana', 5), ('coconut', 1), ('durian', 3), ('elderberries', 4) ] sorted_fruit = sorted(fruit_list, key=operator.itemgetter(1)) print(sorted_fruit)

I cannot figure out just exactly what the quiz is looking for.

sorting.py
fruit_list = [
    ('apple', 2),
    ('banana', 5),
    ('coconut', 1),
    ('durian', 3),
    ('elderberries', 4)
]

from operator import itemgetter

sorted_fruit = sorted(fruit_list, key=operator.itemgetter(1))
print sorted_fruit
Kenneth Love
Kenneth Love
Treehouse Guest Teacher

print sorted_fruit is likely to trigger a syntax error in the code challenge since we run Python 3 and that syntax is only valid in Python 2.

1 Answer

akak
akak
29,446 Points

Don't enter "operator"

 sorted_fruit = sorted(fruit_list, key=itemgetter(1))
Dean McKenzie
Dean McKenzie
11,149 Points

Hey akak I was wondering why is it 1 and not int?

akak
akak
29,446 Points

Hey Taylor,

itemgetter is a function that allows you to point to a particular item you want to get. In this example we want to sort by second item - the number, so we enter 1 (since it's 0 based). For example if you'd enter 0 instead of 1 it would sort by names (apple, banana... etc) This function expects a number so if you enter something else (like type int) it will throw an error. Cheers!