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

Nancy Melucci
PLUS
Nancy Melucci
Courses Plus Student 36,143 Points

How to make the iteration happen in this challenge? (Stage 3 Dictionaries)

My string_factory can make the first sentence, (I am Michaelangelo and I love to eat Pizza.) but I can't make it iterate through the whole list of dictionaries.

I've tried replace my "for loop" line with

<for dict in range(len(dicts) )>

but (at least in PyCharm) that is no bueno

def string_factory(dicts, string):
    for dict in dicts:
        string = string.format(**dict)
        my_list = string
        return my_list


print string_factory(dicts, string)'''


dicts = [
    {'name': 'Michelangelo',
     'food': 'PIZZA'},
    {'name': 'Garfield',
     'food': 'lasanga'},
    {'name': 'Walter',
     'food': 'pancakes'},
    {'name': 'Galactus',
     'food': 'worlds'}
]

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

1 Answer

Kenneth Love
STAFF
Kenneth Love
Treehouse Guest Teacher

Since you need to make multiple strings, you need something that'll hold multiple strings...might I suggest a list?

Then, make each string, append it to the list, and, at the end, return the list of strings. What you're doing right now, with your return inside of your for loop, is returning only the first string.