> Correction:
>
> [snip] the expression "parts[1 : -1]" means gather list items from the
> second element in the list (index value 1) to one index position
> before the end of the list. [snip]

MRAB's solution was deserving of a more complete solution:

>>> def parse_address(address):
        # Handles poorly-formatted addresses:
        # 100 RAMPART S ST -- direction in wrong position
        # 45 JOHN CHURCHILL CHASE  ST -- two spaces before type
        #addresslist = ['num', 'dir', 'name', 'type']
        addresslist = ['', '', '', '']
        parts = address.split()
        if parts[-2] in ('E', 'W', 'N', 'S'):
                addresslist[1] = parts[-2]
                addresslist[2] = ' '.join(parts[1 : -2])
        else:
                addresslist[2] = ' '.join(parts[1 : -1])
        addresslist[0] = parts[0]
        addresslist[3] = parts[-1]
        return addresslist

>>> parse_address('45 John Churchill Chase N St')
['45', 'N', 'John Churchill Chase', 'St']
>>> parse_address('45 John Churchill Chase  St')
['45', '', 'John Churchill Chase', 'St']
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to