I am trying to unpack set of phone numbers from a sequence, python shell in turn throws an invalid syntax error. I am using python 2.7.1. Here is the snippet
>>> record = ('Dave', 'dave@example.com', '773-555-1212', '847-555-1212')
>>> name, email, *phone-numbers = record
SyntaxError: invalid syntax
>>>
Please explain. Is there any other way of doing the same?
That functionality is only available in Python 3, an alternative is:
Or something like:
but that is pretty hacky IMO
This new syntax was introduced in Python 3. So, it'll raise error in Python 2.
Related PEP: PEP 3132 -- Extended Iterable Unpacking
Python 3:
Python 2:
You are using Python 3 specific syntax in Python 2.
The
*
syntax for extended iterable unpacking in assignments is not available in Python 2.See Python 3.0, new syntax and PEP 3132.
Use a function with
*
splat argument unpacking to simulate the same behaviour in Python 2:or use list slicing.