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 Basics (2015) Python Data Types Use .split() and .join()

Fernandito Flores
seal-mask
.a{fill-rule:evenodd;}techdegree
Fernandito Flores
Python Web Development Techdegree Student 916 Points

Help understanding the challenge task 3 of 3 question in Python Basics.

This is the task. I quite don't understand the instructions on the second paragraph. Thanks.

Alright, let's finish making our menu. Combine the sundaes list into a new variable named display_menu, where each item in the list is rejoined together by a comma and a space (", "). Then reassign the menu variable to use the existing variable and .format() to replace the placeholder with the new string in display_menu. If you're really brave, you can even accomplish this all on the same line where menu is currently being set.

banana.py
available = "banana split;hot fudge;cherry;malted;black and white"
sundaes = available.split(";")
menu = "Our available flavors are: {}. " +", ".join(sundaes)
display_menu = sundaes

4 Answers

your join is right, but you should assign it to the variable display_menu . then you can use .format() to insert it into the string assigned to menu . whenever you use {} inside of a string, that means you are going to use the .format method, to insert values without needing to use the + operator .

available = "banana split;hot fudge;cherry;malted;black and white"
sundaes = available.split(";")
display_menu = ", ".join(sundaes)
menu = "Our available flavors are: {}.".format(display_menu)

you could also take out your + and use .format around the join and get the same result, and also not having to create the display_menu variable, which is what he means by being brave and doing it all on the same line:

available = "banana split;hot fudge;cherry;malted;black and white"
sundaes = available.split(";")
menu = "Our available flavors are: {}.".format(', '.join(sundaes))
Fernandito Flores
seal-mask
.a{fill-rule:evenodd;}techdegree
Fernandito Flores
Python Web Development Techdegree Student 916 Points

Thanks Colby for taking the time in helping me understand better this task. I finally did figured it out. I really appreciate your help!

No problem, glad you got it sorted

Whats the difference in using the format and join? Cant they both give the same output if you format them correctly? It seems as if format is much more complex and join is a simpler version.

Well they're 2 different things, for different uses. Format is to interpolate data into a string, and a pretty great method of doing so, while a join is used to make a string from values in a list. This is a pretty simple exercise which can show 2 different ways to do things.

I see what was done and I understand now but sometimes I have a hard time understanding the questions.

Michael Werlinger
Michael Werlinger
1,259 Points

available = "banana split;hot fudge;cherry;malted;black and white" sundaes = available.split(';') display_menu ='. '.join(sundaes) menu = "Our available flavors are: {}.".format(display_menu)

This definitely does NOT work even though it is correct formatting so: Make sure you are using the same quotations all the way through. I am sending this in as a bug since it shouldn't make any difference at all.