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 Python Collections (2016, retired 2019) Tuples Combo

Code works on editor, but not in treehouse...

I'm sure this isn't a very elegant solution, but it's the best I could think of. It works in my editor, but not when I submit to Treehouse. Any thoughts?

combo.py
# combo([1, 2, 3], 'abc')
# Output:
# [(1, 'a'), (2, 'b'), (3, 'c')]

def combo(*args):
    full_list = []
    x_tuple = ()
    y_tuple = ()
    z_tuple = ()
    for items in args:
        index_positions = list(enumerate(items))
        full_list.extend(index_positions)

    for x,y in full_list:
        if x == 0:
            x_add = x_tuple + (y,)
            x_tuple = x_add
        elif x == 1:
            y_add = y_tuple + (y,)
            y_tuple = y_add
        elif x == 2:
            z_add = z_tuple + (y,)
            z_tuple = z_add
    full_list = [x_tuple,y_tuple,z_tuple]

    return(full_list)

2 Answers

Steven Parker
Steven Parker
215,972 Points

:warning: Be careful about testing a challenge in an external REPL or IDE.

If you have misunderstood the challenge, it's also very likely that you will misinterpret the results.

In this case, you're making assumptions about the incoming data. Unlike the sample shown in the comments, the real test data may have more than 3 items and the items might not contain sequential numbers.

You'll need to write your function so it can work on iterable pairs of any length and with any contents. The good news is that a generic solution can actually be less complicated and more compact that what you have here.

Thanks Steven. I'll work on it. The instructions said: Assume the iterables will be the same length, which is why I went the route I did. I'll take what you suggest and hammer it out.

Steven Parker
Steven Parker
215,972 Points

Yes, you can assume they are the same length as each other. But not the same length as in the example.

Yeah, makes sense now. Solved. Thank you, Steven! The answer was so much simpler. :) Took 6 lines of code.