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

Manish Giri
Manish Giri
16,266 Points

Is this the expected solution for using ** for unpacking the dict?

For this challenge, I feel like I'm missing something. My solution was -

def string_factory(ldict):
    return [template.format(**dct) for dct in ldict]

Even though it worked, but since List Comprehension isn't covered in the track so far, I think this challenge expects a different solution.

What is the expected solution using ** for unpacking?

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}!"
Keith Whatling
Keith Whatling
17,759 Points

You're "meant" to do it by looping and appending each iteration to a list and then return the list. = too many lines of code.

List comprehension IMHO should always be used unless it impacts on readability. Its just plain sexy (god I need to get out more).