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 trialDavid Kan
4,058 PointsCreate a function named string_factory that accepts a list of dictionaries and a 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}!"
def string_factory(dicts,string):
strings = []
for item in dicts:
string.format(**dicts)
strings.append(string)
return strings
I watched the video am following it with the **, but the output will not come out correctly..
1 Answer
David Bouchare
9,224 PointsHi David,
I actually asked the same question about a month ago as I was completely stuck. Tried to solve it this morning and was still stuck actually, had to look at the answer again :).
First of all it would be great if you could indent and format the code using the Markdown Cheatsheet below so that the code is readable.
Potential solution:
def string_factory(dicts, string):
strings = []
for items in dicts:
strings.append(string.format(**items))
return strings
I think that should work.
Kenneth Love
Treehouse Guest TeacherKenneth Love
Treehouse Guest TeacherYour code is fine with one small exception.
Calling
str.format()
doesn't change the string, it makes a new string, so you need it to be assigned to a variable (or just put that straight intostrings.append()
).