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 Technical Interview Prep: Python Basics Basic Python Splitsville

Jorge Grajeda
seal-mask
.a{fill-rule:evenodd;}techdegree
Jorge Grajeda
Python Development Techdegree Student 4,983 Points

Can somebody please explain why does it continue to say too many values to unpack ?

split.py
def splitsville(address):
    dictionary = {'street': street,
    'city': city,
    'state': state,
    'zip_code': zip_code}
    address = dictionary.split()
    return dictionary

2 Answers

Steven Parker
Steven Parker
229,921 Points

There's a few issues, here are some hints:

  • street, city, state, and zip_code are referenced but never created
  • you'll need to split the address string to get the values for these
  • be sure to choose the correct delimiter string to split on
Brent Thomas
seal-mask
.a{fill-rule:evenodd;}techdegree
Brent Thomas
Data Analysis Techdegree Student 6,032 Points

Hi Jorge! Split is not a Dictionary method so I believe the line "address = dictionary.split()" is the cause of your error.

Brent Thomas
seal-mask
.a{fill-rule:evenodd;}techdegree
Brent Thomas
Data Analysis Techdegree Student 6,032 Points

It depends - I’m not 100% sure what you’re trying to accomplish but I think your hoping to pass the address argument to your function and then store its values in the dictionary.

Whether or not you use .split() depends on the object type of address that you are passing into your function.

If address is a list and you know the position of your elements you could do something like

Dictionary = { β€˜street’: address[0], β€˜city’: address[1], …… }

If address is a string you can call split on address, which will return a list, and then you can store those values in the dictionary in a ways similar to how I showed above.

addressList = address.split() Dictionary = { β€˜street’: addressList[0], β€˜city’: addressList[1], …. }