Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

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,445 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,445 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!