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

Kade Carlson
Kade Carlson
5,928 Points

I have a syntax error?

Not sure what my syntax error is

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}!"
dicts = [{"name2" : "Kade"}, {"food2" : "macaroni"}]
def string_factory(dicts):
    return new_list = [**{"name" : "Kade"}, {"food" : "macaroni"}]

2 Answers

james south
seal-mask
.a{fill-rule:evenodd;}techdegree seal-36
james south
Front End Web Development Techdegree Graduate 33,271 Points

i'm not sure what the specific syntax error is here but i would note that your function uses neither the template nor the parameter and you need to use both to get the correct output.

The specific syntax error you are getting is from the assignment statement in your return line. What comes after return needs to be an expression (something the Python interpreter can evaluate to some value). For example:

def string_factory(dicts):
    new_list = [**{"name" : "Kade"}, {"food" : "macaroni"}]
    return new_list

If you put the new_list assignment statement on its own line and just return new_list, your syntax error should be fixed (though I don't think this will work still).

Hope that helps :)