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) Dictionaries String Formatting with Dictionaries

Sergej Dolezil
Sergej Dolezil
958 Points

unpacking challenge

Hi,

Please help, the code I did for the unpacking challenge in Collections works in workspace, but I get "Bummer! string_factory() missing 1 required positional argument: 'template'" when checking my work in the challenge itself.

thanks in advance! Sergej

string_factory.py
# Example:
# values = [{"name": "Michelangelo", "food": "PIZZA"}, {"name": "Garfield", "food": "lasagna"}]
# string_factory(values)
# ["Hi, I'm Michelangelo and I love to eat PIZZA!", "Hi, I'm Garfield and I love to eat lasagna!"]

template = "Hi, I'm {name} and I love to eat {food}!"

values = [{"name": "Frodo", "food": "burgers"}, {"name": "Aragorn", "food": "tacos"}, {"name": "Gandalf", "food": "chilli"}]

def string_factory(values, template):
    orders = []

    for pair in values:
        orders.append(template.format(**pair))

    return orders

3 Answers

Steven Parker
Steven Parker
231,248 Points

:point_right: As the error says, your function has the wrong number of arguments.

The challenge asked for a function "that accepts a list of dictionaries as an argument". But your function takes two arguments, which generates the error when the challenge tries it out using just one.

But don't worry, you can still reference template from inside the function since it has global scope.

Can you please give Steven a Best Answer so inside the Community everybody knows this is answered? Thank you. ~Alex

Sergej Dolezil
Sergej Dolezil
958 Points

Hi Alex,

I did it didn't register, sry