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

James Dunn
James Dunn
3,041 Points

Me again with yet another code challenge question.

My understanding of the challenge instructions is that the tuple list output by the combo function should look like this. (for the purpose of the question 0a = index 0 of first iterable, 0b is index of second iterable. index will change.)

[(0a, 0b), (1a, 1b), (2a, 2b)]

that being the case the code I've written produces the tuple list desired. And yet, when put into the challenge, I get "Bummer: Example Output combo("abc", "def") ect.

For the life of me, I can't seem to see what I'm doing wrong.

Thanks in advance.

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

def combo(first_iterable, second_iterable):
    tup_list = []

    for value in first_iterable:
        i = first_iterable.index(value)
        tmp = second_iterable[i]

        tup_list.append((value, tmp))
        print(tup_list)

4 Answers

pet
pet
10,908 Points

Kenneth asks for output that looks like this:
[(1, 'a'), (2, 'b'), (3, 'c')]
the output I got it the workspace was this:
[(1, 'a')]
[(1, 'a'), (2, 'b')]
[(1, 'a'), (2, 'b'), (3, 'c')]

Hope this helps! :)

pet
pet
10,908 Points

Could you post the instructions please. :)

James Dunn
James Dunn
3,041 Points

The instructions are as follows:

Alright, this one can be tricky but I'm sure you can do it.

Create a function named combo that takes two ordered iterables. These could be tuples, lists, strings, whatever.

Your function should return a list of tuples. Each tuple should hold the first item in each iterable, then the second set, then the third, and so on. Assume the iterables will be the same length.

Check the code below for an example.

James Dunn
James Dunn
3,041 Points

OMG! That's it. I forgot to replace my print() statement with the return statement.

The print line was only in there to show me that it was making a list of tuples.

Thank you. That was helpful indeed.